生成全局UNIX时间戳

时间:2015-02-19 18:31:22

标签: c# datetime unix-timestamp

我希望生成全局UNIX时间戳,这对所有国家和地区都是一样的。我已经在.NET(C#.NET)平台上使用UNIX时间戳弄脏了。但我注意到在不同的国家实际上并不是在不同时区的国家,这个时间戳已被改变。

是否可以为所有时区或地区或地区提供相同的服务?

由于

1 个答案:

答案 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;
}