Laden...

zwei eigentlich gleiche DateTime Werte nicht gleich?

Erstellt von alex.enjoy vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.368 Views
A
alex.enjoy Themenstarter:in
18 Beiträge seit 2010
vor 13 Jahren
zwei eigentlich gleiche DateTime Werte nicht gleich?

Hallo,

ich bin auf was kurioses gestoßen.
Gegeben ist eine Entity mit einer DateTime property.
Diese Entity speichere ich in über NHibernate in eine DB und lade sie direkt wieder.
Es liegt nicht an einer Rundung der Millisekunden, die sind immer ==0


entity1.ID = 1;
entity1.createdDate = DateTime.Date();
repo.save(entity1);
/* hier wird eine neue Session genutzt um eventuelle Caches zu umgehen */
entity2 = repo.load(entity1.ID);

/* hier nun Bedingungen die ich beobachtet habe */
entity1.createdDate != entity2.createdDate
entity1.createdDate.ToOADate == entity2.createdDate.ToOADate
entity1.createdDate.ToString == entity2.createdDate.ToString

entity1.createdDate.Equals(entity2.createdDate) == false

entity1.createdDate.Miliseconds == 0
entity2.createdDate.Miliseconds == 0


wie kann es sein, das der direkte Vergleich oder die Prüfung mit Equals eine Ungleichheit feststellt, wenn doch die anderen Methoden die Gleichheit belegen?

I am confused.
alex.

Keyboard not found Error. Press F1 to continue. 👶

F
240 Beiträge seit 2006
vor 13 Jahren

Equals vergleicht auf die Ticks, und diese sind anscheinend unterschiedlich.

1.552 Beiträge seit 2010
vor 13 Jahren

Hallo Femaref,

Equals vergleicht auf die Ticks, und diese sind anscheinend unterschiedlich.

== vergleicht auch die InternenTicks.

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

5.942 Beiträge seit 2005
vor 13 Jahren

Hoi alex.enjoy

Schreib dir eine Extensionmethod für die Tests, die nur Jahr, Monat und Tag vergleicht, oder zusätzlich noch die Zeit ohne Ticks, bzw. ohne Sekunden. Je nach em wie du es brauchst.

Ich hatte das gleiche Problem auch schon 😃

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011