C# 获取当前时间戳的两种不同计算方式
程序员文章站
2022-07-09 16:34:52
在使用.net开发,c#去获取当前时间戳时,我们可能会使用到不同的代码方式获取,但是获取的结果并不一定对,下面列举获取方式。...
在使用.net开发,c#去获取当前时间戳时,我们可能会使用到不同的代码方式获取,但是获取的结果并不一定对,下面列举获取方式。
第一种代码
/// <summary> /// 获取时间戳 /// </summary> /// <returns></returns> public string GetTimeStamp() { TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToInt64(ts.TotalSeconds).ToString(); }
now()
:读取的时间是系统的本地时间,也就是说,如果系统时区默认没有设置,那么读取的就是世界标准。但是一般我们中国是北京时间,在时间系统里面设置的是北京时间,所以不是世界标准时间
第二种代码
/// <summary> /// 获取时间戳 /// </summary> /// <returns></returns> public static string GetTimeStamp() { TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToInt64(ts.TotalMilliseconds).ToString(); }
utcnow()
:读取的时间一直都是系统的“世界标准时间”,不管系统的本地时区是否设置,读取的时间不会随这些设置变化;
综合以上两种,一般我们编写代码的时间戳都是使用世界时间utc,这也是使用的工具或插件等使用的方式,比如unix时间戳等。
时间戳使用来比对用,比如调用接口时发送,比对是不是过期和有效的访问,有个误差控制。
来源:,分享请保留出处。