Ich habe 2 DateTime
Werte:Vergleich mit Datetime unspezifisch und UTC Arten
date1 < - {15-07-13 20.45.10} mit Art = Keine Angabe
date2 < - {15-07 -13 20:45:10} mit Kind = UTC
Beim Vergleich dieser 2 Daten sind die 2 Daten gleich.
if (DateTime.Compare(date1, date2)!=0)
...
Kann jemand erklären warum?
mir ein bisschen mehr seltsam: wenn die date1 Umwandlung in UTC (was keine Angaben Art ist), sehe ich deutlich, dass das Datum anders:
date1.ToUniversalTime() -> {15- 07-13 18.45.10} mit Art = UTC
Als Behelfslösung können Sie eine benutzerdefinierte comparer, so etwas wie 'public class FullDateTimeEqualityComparer schreiben: EqualityComparer { Öffentliche Überschreibung bool Entspricht (DateTime dt1, DateTime dt2) {return dt1.Kind == dt2.Kind && dt1 == dt2; } öffentliche Überschreibung int GetHashCode (DateTime dt) {return dt.Kind.GetHashCode()^dt.GetHashCode(); }} '. –
Über Ihren letzten Punkt mit der Konvertierung. Nicht spezifizierte Konvertierungen sind knifflig ... wenn Sie ToLocalTime konvertieren, wird angenommen, dass es sich um UTC handelt. Und umgekehrt, wenn Sie ToUniversalTime konvertieren, nimmt es an, dass es lokal ist. In beiden Fällen passiert also eine Konvertierung. – Cary