我能够找到示例代码来获取Linux Epoch中的当前时间戳(1970年1月1日午夜以来的秒数),但是我很难找到如何计算Epoch未来的例子,例如10从现在起几分钟,我怎样才能计算Linux Epoch的未来时间?
DateTime结构是否负责这个?还有其他类/结构吗?
更新:
我现在已经知道,只有提前6个月宣布跳跃,因为地球的旋转不是那么可预测的......
既然在将来的日期里没有可能实现它,我可以想象他们只是省略了它们?
2012年,这里有一个关于SO的问题,.NET的DateTime是否能够识别闰秒。[1] 答案是否定的。
\n文档仍然明确指出事实并非如此。[2]
\n然而,Windows Server 2019 和 Windows 10 October 2018 更新让Windows 本身意识到了闰秒。[3]
\n这就引出了一个问题:.NET 现在本质上能够感知闰秒吗?更具体地说:我可以DateTime通过某种方式选择让我的结构也意识到闰秒吗?
编辑:
\n来自标题为“Quest:在 Windows 上编写闰秒感知应用程序”的 MS Word 文档 [4](由我强调):
\n\n\n已知问题:已知某些框架在闰秒发生后\n会错误地计算时间。例如,.NET Framework 使用其\n内部逻辑来确定现在是什么时间。它的逻辑不\n考虑闰秒。因此,在操作系统中引入闰秒后,\n\xe2\x80\x9cSystem.DateTime.Now.ToString()\xe2\x80\x9d 的输出将\n比本地系统时间提前一秒。 (我们正在与 .NET 框架团队合作解决此问题。)
\n
并来自[5]:
\n\n\n已知某些应用程序会错误地计算时间,\n假设一分钟总是 60 秒。由于闰秒可以\n改变此行为,因此它们将不正确地记录\n此事件期间的时间。例如(在撰写本文时):
\n.NET Framework 使用自己的内部逻辑来确定现在的时间,并且不考虑闰秒。因此,依赖于\n.NET Framework 的 PowerShell 在使用\nGet-Date 时不会报告第 61 秒(数字 60)
\n事件查看器:事件的日期将被错误\n记录。但是,事件元数据将正确记录系统时间(显示第 60 秒)。
\n注意:这些团队正在努力更新其软件,以便在处理闰秒时\n使用更合适的数学方法。
\n
因此,.NET 似乎会在未来的某个时候意识到闰秒。因此我不会将此作为解决方案发布。
\n[1] .Net 的 DateTime 方法能够识别闰秒吗?
\n[2] …
我被告知我将以以下格式收到日期时间:
yyyy-mm-ddThh:mm:sss
Run Code Online (Sandbox Code Playgroud)
这来自一个Java Web服务,即使我试图得到最终三个"sss"的重点,它似乎是最终格式而不是拼写错误.
所以我试图使用.Net解析它(实际上是C#)
var s = "2014-09-16T12:17:057";
var d = DateTime.ParseExact(s, "yyyy-MM-ddThh:mm:sss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
但它提出了一个例外
Sting未被识别为有效的DateTime
谢谢,
更新:
怀疑,第三次魅力和我已经确认实际格式应该是
yyyy-MM-ddTHH:mm:ss
Run Code Online (Sandbox Code Playgroud)