Mit DateTime.ParseExact-um nur die Zeit (ohne den Tag)

Ich zu unerwarteten Ergebnissen kommen, wenn ich mit DateTime.ParseExact.
Hier mein test-code:

Dim MinVal As DateTime = #12:00:01 AM#
Dim MaxVal As DateTime = #11:59:59 PM#
Dim TooBig1, Equal1 As Boolean
Dim TooBig2, Equal2 As Boolean

Dim dt1 As DateTime = #12:00:01 AM#
Dim dt2 As DateTime = DateTime.ParseExact("12:00:01 AM", "hh:mm:ss tt", Globalization.DateTimeFormatInfo.InvariantInfo)

TooBig1 = (dt1.CompareTo(MaxVal) > 0)
Equal1 = (dt1.CompareTo(MinVal) = 0)

TooBig2 = (dt2.CompareTo(MaxVal) > 0)
Equal2 = (dt2.CompareTo(MinVal) = 0)

Das Ergebnis ist gut für dt1:

  • es zeigt im debugger als #12:00:01 AM# (ohne Tag)
  • TooBig1 ist Falsch
  • Equal1 Wahr ist

Aber das Ergebnis ist (falsche?) unerwartet für dt2:

  • es zeigt im debugger als #9/30/2011 12:00:01 AM#
  • TooBig2 Wahr ist
  • Equal2 ist Falsch

Sieht es aus wie es ist, weil der Tag ist systematisch Hinzugefügt werden, indem Sie ParseExact-auch wenn ich nur die Zeit angeben, in das format.

Meine Frage ist: Wie kann ich Lesen, nur die Zeit mit DateTime.ParseExact?

InformationsquelleAutor JBB | 2011-09-30
Schreibe einen Kommentar