using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace Central.XA.Common.Utilities
{
/// <summary>
/// Convert helper.
/// </summary>
public class ConvertHelper
{
/// <summary>
/// Convert java long type to C# datetime.
/// </summary>
/// <param name="javaLongTime">Java long time.</param>
/// <returns>Return datetime type.</returns>
public static DateTime JavaLongToDateTime(long javaLongTime)
{
////java长整型日期,毫秒为单位
DateTime datetime1970 = new DateTime(1970, 1, 1, 0, 0, 0);
////1970年1月1日刻度
long tricks1970 = datetime1970.Ticks;
////日志日期刻度
long timeTricks = tricks1970 + (javaLongTime * 10000);
int utcTimeArea = (int)(DateTime.Now - DateTime.UtcNow).TotalHours;
////转化为DateTime
DateTime dt = new DateTime(timeTricks).AddHours(utcTimeArea);
return dt;
}
/// <summary>
/// Convert C# datetime type to java long datetime.
/// </summary>
/// <param name="datetime">C# datetime.</param>
/// <returns>Return java long datetime.</returns>
public static long DateTimeToJavaLong(DateTime datetime)
{
////java长整型日期,毫秒为单位
DateTime datetime1970 = new DateTime(1970, 1, 1, 0, 0, 0);
////1970年1月1日刻度
long tricks1970 = datetime1970.Ticks;
int utcTimeArea = (int)(DateTime.Now - DateTime.UtcNow).TotalHours;
////日期刻度
long timeTricks = datetime.AddHours(-utcTimeArea).Ticks;
////转化为Java LongTime
long longdt = (timeTricks - tricks1970) / 10000;
return longdt;
}
/// <summary>
/// Convert DateTime to start date.
/// </summary>
/// <param name="dateTime">Date time.</param>
/// <returns>Return start date.</returns>
public static string ToStartDate(DateTime dateTime)
{
return dateTime.ToString("MM/dd/yyyy") + " 00:00:00";
}
/// <summary>
/// Convert DateTime to end date.
/// </summary>
/// <param name="dateTime">Date time.</param>
/// <returns>Return end date.</returns>
public static string ToEndDate(DateTime dateTime)
{
return dateTime.ToString("MM/dd/yyyy") + " 23:59:59";
}
/// <summary>
/// Convert DateTime to start date.
/// </summary>
/// <param name="dateTime">Date time.</param>
/// <returns>Return start date.</returns>
public static string ToStartDate(string dateTime)
{
return ToStartDate(Convert.ToDateTime(dateTime));
}
/// <summary>
/// Convert DateTime to end date.
/// </summary>
/// <param name="dateTime">Date time.</param>
/// <returns>Return end date.</returns>
public static string ToEndDate(string dateTime)
{
return ToEndDate(Convert.ToDateTime(dateTime));
}
/// <summary>
/// Convert DateTime to start date.
/// </summary>
/// <param name="dateTime">Date time.</param>
/// <returns>Return start date.</returns>
public static DateTime ToDateTimeStartDate(string dateTime)
{
return Convert.ToDateTime(ToStartDate(dateTime));
}
/// <summary>
/// Convert DateTime to end date.
/// </summary>
/// <param name="dateTime">Date time.</param>
/// <returns>Return end date.</returns>
public static DateTime ToDateTimeEndDate(string dateTime)
{
return Convert.ToDateTime(ToEndDate(dateTime));
}
/// <summary>
/// Convert date and time to new datetime.
/// </summary>
/// <param name="date">Date string.</param>
/// <param name="time">Time string.</param>
/// <returns>Date time.</returns>
public static DateTime ToDateTime(string date, string time)
{
var nowDate = Convert.ToDateTime(date).ToString("yyyy/MM/dd");
var nowTime = Convert.ToDateTime(time).ToString("HH:mm:ss");
return Convert.ToDateTime(nowDate + " " + nowTime);
}
}
}