using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HuaTong.General.Utility
{
/// <summary>
/// 系统校时工具类
/// </summary>
public static class SysDateTime
{
//时间差值标识
private static TimeSpan TimeTick = new TimeSpan(0);
//默认起始时间
public readonly static DateTime StartTime = new DateTime(1970, 1, 1);
//默认最小时间
public readonly static DateTime MinDatetime = new DateTime(1900, 1, 1);
/// <summary>
/// 按UTC时间设置时间差值
/// </summary>
public static void CorrectingTimeUTC(long timestamp)
{
TimeTick = StartTime.AddMilliseconds(timestamp) - DateTime.UtcNow;
}
/// <summary>
/// 按本地时间设置时间差值
/// </summary>
public static void CorrectingTime(long timestamp)
{
TimeTick = StartTime.AddMilliseconds(timestamp) - DateTime.Now;
}
/// <summary>
/// 返回UTC时间戳
/// </summary>
public static long UtcTimestamp
{
get
{
TimeSpan ts = UtcNow - StartTime;
return (long)ts.TotalMilliseconds;
}
}
/// <summary>
/// 返回本地时间戳
/// </summary>
public static long LocalTimestamp
{
get
{
TimeSpan ts = LocalNow - StartTime;
return (long)ts.TotalMilliseconds;
}
}
/// <summary>
/// 返回本地时间
/// </summary>
public static DateTime LocalNow
{
get
{
return DateTime.Now + TimeTick;
}
}
/// <summary>
/// 返回UTC时间
/// </summary>
public static DateTime UtcNow
{
get { return DateTime.UtcNow + TimeTick; }
}
/// <summary>
/// 时间戳转为DateTime
/// </summary>
public static DateTime GetDateTime(long timeStamp)
{
return StartTime.AddMilliseconds(timeStamp);
}
}
}