2010-02-02 8 views

Antwort

53

Verwenden Sie DateTime.ParseExact(). Etwas wie:

string date = "20100102"; 
    DateTime datetime = DateTime.ParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture); 
+0

@Dynami versuchen Sie es erneut, ich habe gerade mit dem richtigen Format bearbeitet (Fall ist wichtig) –

+2

Nach Lukes Lösung funktioniert es gut Datumsformat sollte 'JJJJMMTD' sonst ist Thowing Expection 'Zeichenfolge wurde nicht als gültige Datetime erkannt' – Sreedhar

11
DateTime.TryParseExact(myDateString, "yyyyMMdd", 
         CultureInfo.InvariantCulture, 
         DateTimeStyles.None, out myDateVar) 
+2

ich verwenden, um dieses Verfahren, da es mir den Rückgabewert von TryParseExact zu überprüfen erlaubt und weiß, ob das Datum richtig umgesetzt. Ich habe einen Standard festgelegt, wenn dies nicht der Fall war. –

3
DateTime yourDateTime = DateTime.ParseExact(yourString, "yyyyMMdd", null); 
3

Verwenden von TryParseExact ist in der Regel schöner als ParseExact, da keine Ausnahme ausgelöst wird, wenn die Konvertierung fehlschlägt. Stattdessen gibt es dann, wenn es erfolgreich ist, falsch ist, wenn es nicht ist:

DateTime dt; 
if (DateTime.TryParseExact("20100202", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) 
{ 
    Console.WriteLine(dt.ToString()); 
}