.NET 获取时间戳


生成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; } }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM