2016-03-28 11 views
2

Ich versuche, eine Zeichenfolge zu Datetime mit ParseExact zu analysieren, aber ich bleibe weiterhin .. Ich versuchte unten, aber einen Fehler erhalten: Zeichenfolge wurde nicht als gültige DateTime erkannt.Parse-String zu Datetime mit parse genau

string topA = "3/25/2016 12:00:00 AM"; 
DateTime d = new DateTime(); 
d = DateTime.ParseExact(topA, "dd/MM/yyyy HH:mm:ss tt", null); 
+0

Ihr Format sollte "M/TT/JJJJ hh: mm: ss tt" sein, wie Soner Gönül angemerkt hat. Wahrscheinlich wäre es besser, DateTime.TryParse() stattdessen mit einer europäischen Kultur zu verwenden. –

+0

Tauschen Sie "TT/MM". Und "HH" ist für 24 Stunden System, so dass 12:00:00 Uhr ungültig ist, verwenden Sie "hh" oder 00:00:00 AM –

Antwort

3

Basierend auf der Zeichenfolge sollte richtiges Format M/dd/yyyy hh:mm:ss tt mit vorzuziehen InvariantCulture sein.

string topA = "3/25/2016 12:00:00 AM"; 
DateTime d = DateTime.ParseExact(topA, "M/dd/yyyy hh:mm:ss tt", 
             CultureInfo.InvariantCulture); 
+0

es funktionierte! Würde es auch funktionieren, wenn ich einen Monat mit zwei Ziffern übergebe? Wie kann ich mit beiden Situationen umgehen? –

+0

@JuniorJohn 'M' specifier _can_ zwei Sekunden tatsächlich analysieren. Beispielsweise; 'M' Spezifizierer ist für' 1' bis '12', aber' MM' Spezifizierer ist für '01' bis' 12' (beachten Sie führende Null für einzelne Ziffer) –