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