2012-06-27 13 views
17

Ta linia kodu:DateTime.ParseExact() nie obsługuje 24-godzinnych wartości czasu?

DateTime dt = DateTime.ParseExact(time, "hh:mm", CultureInfo.InvariantCulture); 

analizuje „czas” wartość „12:45” Po prostu w porządku, ale zgłasza wyjątek „13:00”

powinienem używać innego CultureInfo wartości, czy muszę dodać "pm" do wartości godzin powyżej 12, lub ...?

Komunikat o błędzie: Wyjątek System.FormatException został Wiadomość = Ciąg nie został rozpoznany jako prawidłowy obiekt DateTime.

+13

Użyj "HH: mm" do analizy formatów 24-godzinnych. –

+2

+1 za użycie terminu "grok" w pytaniu dotyczącym SO –

Odpowiedz

44

"hh" to 12-godzinny format zegara (od 01 do 12). Musisz użyć "HH" dla zegara 24-godzinnego.

DateTime dt = DateTime.ParseExact(time, "HH:mm", CultureInfo.InvariantCulture); 
2

Spróbuj tego:

DateTime dt = DateTime.ParseExact(time, "u", CultureInfo.InvariantCulture); 

"u" wskazuje uniwersalny format sortable.

2

Chociaż Hans już odpowiedział na twoje pytanie w sekcji komentarzy, Here jest linkiem MSDN opisującym wszystkie rodzaje formatów dat używanych z metodą DateTime.ParseExact.

Powiązane problemy