C# 时间戳(TimeStamp)与时间(DateTime)的互相转换

  什么是时间戳:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

  时间戳在线转换网址:https://tool.lu/timestamp,时间戳的转换网址有很多,经常用的还有站长工具。

下附代码,在控制台中粘贴在启动类即可使用,需引用(using System)命名空间 ;

/// <summary> /// 取时间戳,高并发情况下会有重复。想要解决这问题请使用sleep线程睡眠1毫秒。 /// </summary> /// <param>精确到毫秒</param> /// <returns>返回一个长整数时间戳</returns> public static long GetTimeStamp(bool AccurateToMilliseconds = false) { if (AccurateToMilliseconds) { // 使用当前时间计时周期数(636662920472315179)减去1970年01月01日计时周期数(621355968000000000)除去(删掉)后面4位计数(后四位计时单位小于毫秒,快到不要不要)再取整(去小数点)。 //备注:DateTime.Now.ToUniversalTime不能缩写成DateTime.Now.Ticks,会有好几个小时的误差。 //621355968000000000计算方法 long ticks = (new DateTime(1970, 1, 1, 8, 0, 0)).ToUniversalTime().Ticks; return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000; } else { //上面是精确到毫秒,需要在最后除去(10000),这里只精确到秒,只要在10000后面加三个0即可(1秒等于1000毫米)。 return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000; } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxzyd.html