Как приходят следующий код (в C#) возвращают ложь:DateTime.Ticks, DateTime.Equals и часовые пояса
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 зависит от времени?
Я думаю, что тот факт, что Клещи отличаются поэтому следующий код также возвращает ложь
DateTime d = DateTime.Now;
d == d.ToUniversalTime(); // false
MSDN от дока на DateTime.Equals упоминает
t1 и t2 равны, если их имущество Ticks значения равны. Их значения свойств Kind не рассматриваются в тесте на равенство.
Мое предположение было то, что DateTime.Ticks будет равным, независимо от часового пояса.
Я бы ожидал, что два момента времени будут равны независимо от того, в какой временной зоне они произошли. Неужели мои ожидания ошибочны?
Обратите внимание, что вы можете использовать DateTimeOffset (http://msdn.microsoft.com/en-us/library/system.datetimeoffset.op_equality.aspx), который сравнивает момент времени при сравнении двух экземпляров. –
@ChrisShaffer Спасибо, я думаю, что это то, что я должен использовать, так как то, что я ищу, это точные моменты времени, а не фактические «даты». – GuiSim