DateTime.Ticks, DateTime.Equals и часовые пояса

Почему следующий код (в C #)возвращает false:

DateTime d = DateTime.Now;
d.Ticks == d.ToUniversalTime().Ticks; // false

Я ожидаю, что тики DateTime будут основаны на времени UTC. На странице MSDN DateTime.Ticks упоминается, что

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

Полночь первого января 0001 года.. в каком часовом поясе ?

Почему DateTime.Ticks зависит от часового пояса?

Я предполагаю, что тот факт, что Ticks различен, является причиной того, что следующий код также возвращает false

DateTime d = DateTime.Now;
d == d.ToUniversalTime(); // false

Документ MSDN на DateTime.Equals упоминает

t1 и t2 равны, если их свойство Ticks значения равны. Значения их свойства Kind не учитываются при проверке на равенство.

Я ожидал, что значения DateTime.Ticks будут равны независимо от часового пояса.

Я ожидаю, что два момента времени будут равны, независимо от того, в каком часовом поясе они произошли. Мои ожидания неверны?

10
задан GuiSim 20 April 2012 в 18:49
поделиться