Способны ли методы .Net DateTime распознавать дополнительную секунду? - PullRequest
29 голосов
/ 06 января 2012

С високосной секундой на горизонте в июне этого года меня удивило, что .Net Framework знает о високосной секунде?Дополнительная секунда должна быть вставлена ​​после последней секунды 30 июня, так что UTC официально будет:

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

Способна ли платформа .Net справиться с этим?Имеет ли значение, если Windows не знает о високосном втором ?Повлияет ли это на приложения в моно, работающих на O / S, которые осведомлены о Leap Second?

РЕДАКТИРОВАТЬ:

Чтобы немного расширить этоЯ предполагаю сценарий, когда основанное на Java решение для Linux (которое поддерживает Leap Second) вызывает веб-службу .Net, передающую что-то, что является допустимой меткой времени в Java, но выходит за пределы .Net.Существуют ли какие-либо фреймворки, которые его обслуживают (например, как Noda Time)?

Ответы [ 2 ]

20 голосов
/ 06 января 2012

Нет -

Один тик представляет сто наносекунд или одну десятую миллионную секунды.В миллисекунде есть 10 000 тиков.

Значение этого свойства представляет количество интервалов в 100 наносекунд, прошедших с 12:00:00 до полуночи 1 января 0001 года, которое представляет DateTime.MinValue. Не включает количество тиков, относящихся к високосным секундам.

Источник: http://msdn.microsoft.com/en-us/library/system.datetime.ticks.aspx

10 голосов
/ 14 июня 2012

.Net DateTime не содержит положений о високосных секундах, но будет просто зависеть от времени ОС.Windows блаженно не знает о високосных секундах (1) (2) и поэтому просто будет иметь представление о времени, когда она получает его от своего мастера NTP (Я считаю, что по умолчанию для машины, не подключенной к домену, установлено значение time.windows.com ), которое, вероятно, обслуживает UTC, включая дополнительные секунды.

См. Также мой ответ на "Расчет времени будущей эпохи в C #", который более подробно описан.

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