生成18位订单号
DateTime.Now.ToUniversalTime().Ticks - 537525800000000000 示例值 100000064399971543
获取时间错(秒)
(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000
获取时间错(毫秒)
(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000
获取时间(秒)
TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)).Add(new TimeSpan(1606878355l * 10000000l)).ToString()
获取时间(毫秒)
TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)).Add(new TimeSpan(1606878355796 * 10000)).ToString()
封装方法
/// <summary> /// 获取时间戳10位(秒) /// </summary> /// <param name="dateTime"></param> /// <returns></returns> public static long GetTimestamp10(this DateTime dateTime) { return (dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000000; } /// <summary> /// 获取时间戳13位(毫秒) /// </summary> /// <param name="dateTime"></param> /// <returns></returns> public static long GetTimestamp13(this DateTime dateTime) { return (dateTime.ToUniversalTime().Ticks - 621355968000000000) / 10000; } /// <summary> /// 转换时间戳 /// </summary> /// <param name="timestamp"></param> /// <returns></returns> public static DateTime ConvertTimestamp(this long timestamp) { switch (timestamp.ToString().Length) { case 10: return TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)).Add(new TimeSpan(timestamp * 10000000l)); case 13: return TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)).Add(new TimeSpan(timestamp * 10000)); default: return new DateTime(1970, 1, 1); break; } }