如何在 C# 中获取纪元时间? [复制]
Posted
技术标签:
【中文标题】如何在 C# 中获取纪元时间? [复制]【英文标题】:How do I get epoch time in C#? [duplicate] 【发布时间】:2012-03-16 05:20:23 【问题描述】:可能重复:How do you convert epoch time in C#?
我试图弄清楚如何在 C# 中获取纪元时间。类似于本网站给出的时间戳:http://www.epochconverter.com/
DateTime 有方法吗?
【问题讨论】:
在这里查看问题和答案***.com/a/56363742/3057246 自 .NET 4.6 以来新的更好的答案:使用DateTimeOffset.Now.ToUnixTimeSeconds()
【参考方案1】:
TimeSpan t = DateTime.UtcNow - new DateTime(1970, 1, 1);
int secondsSinceEpoch = (int)t.TotalSeconds;
Console.WriteLine(secondsSinceEpoch);
【讨论】:
当然,如果你相信纪元是 1970-01-01T00:00:00,就像任何 Unix 系统一样。但是 .NET 纪元是 0001-01-01T00:00:00,也就是众所周知的DateTime.MinValue
。
当然,但是很多应用程序仍然使用 1970 年的时代,例如 OAuth。
不应该是毫秒吗?最后少了几个零
来自 .Net 4.6 及更高版本使用 DateTimeOffset.Now.ToUnixTimeSeconds()
在第一个字符串中,Epoch 时间是由构造函数创建的,它返回未指定类型的 DateTime 对象,因此请改用new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
以避免从 Utc 中减去未指定的日期时间。以上是关于如何在 C# 中获取纪元时间? [复制]的主要内容,如果未能解决你的问题,请参考以下文章