我希望生成全局UNIX时间戳,这对所有国家和地区都是一样的。我已经在.NET(C#.NET)平台上使用UNIX时间戳弄脏了。但我注意到在不同的国家实际上并不是在不同时区的国家,这个时间戳已被改变。
是否可以为所有时区或地区或地区提供相同的服务?
由于
答案 0 :(得分:2)
Unix时间戳定义为自Unix纪元以来经过的秒数,这是一个单一的时间点 - 通常定义为1970年1月1日午夜 UTC 。所以时间戳已经是全局的 - 生成它的最简单方法是使用DateTime.UtcNow
来获取UTC时间(不受时区影响),而不是DateTime.Now
返回系统的 local < / em>时间(取决于时区)。
private static readonly DateTime UnixEpoch =
new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
public long GetUnixTimestamp()
{
TimeSpan diff = DateTime.UtcNow - UnixEpoch;
return (long) diff.TotalSeconds;
}