Подтвердить что ты не робот

Являются ли методы .Net DateTime способными распознать "прыжок"?

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

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

Является ли среда .NET доступной для этого? Это даже имеет значение, если Windows не означает Leap Second? Будет ли это влиять на приложения в моно, работающие на O/S, которые знают о прыжке в секунду?

EDIT:

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

4b9b3361

Ответ 1

Нет -

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

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

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

Ответ 2

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

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