如何在 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# 中获取纪元时间? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从当天的纪元时间获取天数? [复制]

在 C# 中计算未来纪元时间

如何在 python 中将 1970 年前的日期转换为纪元? [复制]

如何在 Redshift 中获取纪元时间?

如何在java中获取自定义日期和时间的纪元?

AWS API Gateway - 如何在正文映射模板中获取日期/时间戳/纪元?