.Net的DateTime方法是否能够识别闰秒?

时间:2012-01-06 16:03:17

标签: c# .net datetime time utc

使用Leap Second on the horizon for June this year它让我想知道.Net框架是否是闰秒意识到的?额外的第二个将在6月30日的最后一秒之后插入,因此UTC将正式为:

2012 June 30,     23h 59m 59s
2012 June 30,     23h 59m 60s
2012 July  1,      0h  0m  0s

.Net框架能够处理这个吗? Windows is not Leap Second aware是否重要?这会影响在O / S上运行的单声道应用 闰秒知道吗?

修改

为了进一步扩展这一点,我想象一个场景,Linux上的基于Java的解决方案(知道Leap Second)调用.Net Web服务传递的内容是Java中的有效时间戳但是不在.Net的界限。有没有适合它的框架(也许像Noda Time一样)?

2 个答案:

答案 0 :(得分:20)

不 -

  

单个刻度表示一百纳秒或一百万分之一秒。一毫秒内有10,000个滴答。

     

此属性的值表示自0001年1月1日午夜12:00:00起经过的100纳秒间隔的数量,表示DateTime.MinValue。 它不包括可归因于闰秒的刻度数。

来源:http://msdn.microsoft.com/en-us/library/system.datetime.ticks.aspx

答案 1 :(得分:10)

.Net DateTime没有针对Leap Seconds的规定,但仅仅依赖于操作系统时间。 Windows幸福地没有意识到Leap Seconds (1) (2) ,因此从它的NTP主机收到它时会有时间概念(我相信非默认值) -domain connected machine是time.windows.com),它可能提供UTC,包括闰秒。

另请参阅我对“Calculating Future Epoch Time in C#”的回答,其中详细介绍。

  1. http://support.microsoft.com/kb/909614
  2. http://www.meinberg.de/english/info/leap-second.htm