在使用.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时间戳等。
时间戳使用来比对用,比如调用接口时发送,比对是不是过期和有效的访问,有个误差控制。
来源:,分享请保留出处。
小六吃米饭