Почему следующий код (в 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 будут равны независимо от часового пояса.
Я ожидаю, что два момента времени будут равны, независимо от того, в каком часовом поясе они произошли. Мои ожидания неверны?