/// <summary>
/// 转换成UNIX时间戳 到秒级
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
private int ConvertTimeToInt(DateTime time)
{
return Convert.ToInt32((time.ToUniversalTime().Ticks - 621355968000000000) / 10000000);
}
/// <summary>
/// UNIX时间戳(秒级)转换成本地时间
/// </summary>
/// <param name="d"></param>
/// <returns></returns>
private DateTime GetDateTime(long d)
{
System.DateTime time = System.DateTime.MinValue;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
time = startTime.AddSeconds(d);
return time;
}
/// <summary>
/// 将时间戳转换成当前小时的时间戳
/// </summary>
/// <param name="thisTime"></param>
/// <returns></returns>
public static int GetThisTime(int thisTime)
{
var datatime = GetDateTime(thisTime);
var newtime = new DateTime(datatime.Year, datatime.Month, datatime.Day, datatime.Hour, 0, 0);
var nowTime = Convert.ToInt32((newtime.ToUniversalTime().Ticks - 621355968000000000) / 10000000);
return nowTime;
}
/// <summary>
/// 时间转成Unix时间戳(到毫秒级)
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static long UNIX_TIMESTAMP(DateTime dateTime)
{
return (dateTime.Ticks - DateTime.Parse("1970-01-01 00:00:00").Ticks) / 10000;
}
public static DateTime TIMESTAMP(string UNIX_TIMESTAMP)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = long.Parse(UNIX_TIMESTAMP + "0000");
TimeSpan toNow = new TimeSpan(lTime);
DateTime dtResult = dtStart.Add(toNow);
return dtResult;
}