2009-06-12 1 views
3

Schnelle Frage: Ich versuche, Daten im folgenden Format zu ihrem entsprechenden DateTime-Datentyp zu analysieren, aber aus irgendeinem Grund schlägt es fehl.DateTime.ParseExact - Fehler

Der String-Format ist: 28/Mai/2009: 17: 43: 04 0.000

Oder: dd/MMM/JJJJ: hh: mm: ss zz00

Hier die ist Code, den ich verwende:

Dim provider As New CultureInfo("en-US") 
Dim d As DateTime = DateTime.ParseExact(value, "dd/MMM/yyyy:hh:mm:ss zz00", provider) 

Aber das erzeugt eine FormatException.

FYI: Ich habe auch versucht, die InvariantCulture für den Provider-Parameter von ParseExact zu verwenden, ohne Erfolg.

Alle Hinweise würden sehr geschätzt werden; es ist Freitag und mein Gehirn ist eingeschlafen! :)

Danke!

Antwort

15

Sie wollen "HH" (24-Stunden-Format), anstatt "hh" (12-Stunden-Format) im Format-String:

using System; 
using System.Globalization; 

public class Test 
{ 
    static void Main() 
    { 
     var provider = new CultureInfo("en-US"); 
     // Doesn't throw 
     var d = DateTime.ParseExact("28/May/2009:17:43:04 +0000", 
            "dd/MMM/yyyy:HH:mm:ss zz00", 
            provider); 
    }  
} 
+0

Arrrgh! Anscheinend bin ich auf FormatBlind gegangen. :) Danke, dass du mir meinen offensichtlich offensichtlichen Fehler aufgezeigt hast und mein früheres, glückliches, Freitagsgefühl wiederhergestellt hast! – Richard

8

hh sind Stunden im 12-Stunden-Uhr. Sie wollen HH.