2010-02-02 12 views

risposta

53

Utilizzare DateTime.ParseExact(). Qualcosa di simile:

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

@Dynami riprova, ho appena modificato con il formato corretto (caso del caso) –

+2

Come per la soluzione di Luke funziona bene il formato della data deve essere 'yyyyMMdd' altrimenti sta aspettando che 'la stringa non è stata riconosciuta come un datetime valido' – Sreedhar

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

Ho usato questo metodo in quanto mi ha permesso di controllare il valore di ritorno di TryParseExact e sapere se la data convertito correttamente. Ho impostato un valore predefinito quando non lo ha fatto. –

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

L'utilizzo di TryParseExact è generalmente migliore di ParseExact in quanto non genera un'eccezione se la conversione fallisce. Invece restituisce true se è successo, false se non è:

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