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); } } }