我的猜测是,这将是自特定纪元以来的毫秒或秒——很可能是 1970 年 1 月 1 日午夜 UTC 的 Unix 纪元。
所以代码看起来像这样:
private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0,
DateTimeKind.Utc);
public static DateTime FromMillisecondsSinceUnixEpoch(long milliseconds)
{
return UnixEpoch.AddMilliseconds(milliseconds);
}
在几秒钟内或从不同的时代做出明显的改变:)
另一种方法是创建一个TimeSpan
自纪元以来的秒/毫秒,然后将其添加到纪元:
private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0,
DateTimeKind.Utc);
public static DateTime FromMillisecondsSinceUnixEpoch(long milliseconds)
{
return UnixEpoch + TimeSpan.FromMilliseconds(milliseconds);
}
我不知道它们之间有什么显着差异 - 尽管事实上AddMilliseconds
需要一个double
代替long
表明对于非常大的值,TimeSpan
方法可能更可取。我怀疑这会有什么不同:)