Безопасное сравнение локальных и универсальных DateTimes

Я только что заметил нелепую ошибку при сравнении DateTime.

DateTime d = DateTime.Now;
DateTime dUtc = d.ToUniversalTime();

d == dUtc; // false
d.Equals(dUtc); //false
DateTime.Compare(d, dUtc) == 0; // false

Похоже, что все операции сравнения в DateTimes не выполняют никаких интеллектуальных преобразований, если один из них - DateTimeKind.Local, а другой - DateTimeKind. .УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ. Является ли лучший способ надежно сравнить DateTimes, кроме постоянного преобразования обоих, участвующих в сравнении, во время utc?

40
задан abatishchev 3 August 2011 в 17:32
поделиться