【问题标题】:Are leapseconds taken in account in dotNet (or C#)?在 dotNet(或 C#)中是否考虑了闰秒?
【发布时间】:2010-10-21 08:23:15
【问题描述】:

DateTime 结构会处理这个问题吗? 还有其他类/结构吗?

更新:

我现在读到闰秒只是提前 6 个月宣布,因为地球的自转不是那么可预测的......

由于不可能在未来实施,我可以想象他们只是省略了它们?

【问题讨论】:

  • “照顾好这个”是什么意思?与您有额外一天(2 月 29 日)的闰年相比,闰秒并不那么具体。它们只是两分钟之间的一秒延迟,没有像 2 月 29 日这样的明确区别。所以基本上你会期望或喜欢一个 TimeSpan between to date with a闰秒,例如返回 TotalSeconds 属性中的额外秒数?
  • 确实,并且有像 New DateTime(2008, 12, 2, 12, 34, 60) 这样的时间

标签: c# .net datetime time


【解决方案1】:

据我所知,.NET 的 DateTime 结构不会自动处理闰秒。我认为您甚至不能在 .NET 的 DateTime 中设置高于 59 的秒数。但是,在 Java 中,您可以将秒设置为 0 - 61,因为它的 ISO 标准允许每年有 2 个闰秒。

编辑:我试了一下:

在 .NET 中尝试 Dim dt As New DateTime(2008, 12, 2, 12, 34, 61) 会抛出此消息(61 是秒数):

"时分秒参数 描述一个不可代表的 日期时间。”

【讨论】:

  • 快速浏览一下 Reflector 中 DateTime 的实现,展示了私有助手 TimeToTicks 中的逻辑:((second = 60)) ... throw...
【解决方案2】:

我认为你的两个问题的答案都是不。 参考:http://silverlight.net/forums/t/12114.aspx

【讨论】:

  • 链接没有提供答案。
  • @大卫。那是因为他们删除了那个uri。这是 7 年前的事了。
【解决方案3】:

不,不是 DateTime,因为源代码似乎没有它。

http://referencesource.microsoft.com/#mscorlib/system/datetime.cs

【讨论】:

    猜你喜欢
    • 2013-04-07
    • 2017-08-15
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多