【发布时间】:2021-08-31 16:54:57
【问题描述】:
有这个示例代码,但它开始谈论毫秒/纳秒问题。
MSDN 上有同样的问题,Seconds since the Unix epoch in C#。
这是我目前所得到的:
public Double CreatedEpoch
{
get
{
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
TimeSpan span = (this.Created.ToLocalTime() - epoch);
return span.TotalSeconds;
}
set
{
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();
this.Created = epoch.AddSeconds(value);
}
}
【问题讨论】:
-
即将推出的 .NET 4.6(将于今年晚些时候发布)引入了对此的支持。请参阅
DateTimeOffset.FromUnixTimeSeconds和DateTimeOffset.ToUnixTimeSeconds方法。也有毫秒 unix-time 的方法。 -
另一个添加是
DateTime.UnixEpoch。除非你需要DateTimeOffset而不是DateTime,否则我认为DateTime.UnixEpoch.AddMilliseconds(...)的可读性比DateTimeOffset.FromUnixTimeMilliseconds(...).UtcDateTime略好。
标签: c# datetime unix epoch data-conversion