2010-02-02 11 views

Respuesta

53

Utilice DateTime.ParseExact(). Algo así como:

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

@Dynami intente de nuevo, acabo de editar con el formato adecuado (el caso importa) –

+2

Según la solución de Luke, funciona bien el formato de fecha debe ser 'aaaaMMdd' sino que está agotando la cadena 'no se reconoció como una fecha válida' – Sreedhar

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

que utiliza este método, ya que me ha permitido comprobar el valor de retorno de TryParseExact y saber si la fecha convertida correctamente. Configuré un valor predeterminado cuando no lo hizo. –

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

El uso de TryParseExact es generalmente más agradable que ParseExact ya que no generará una excepción si la conversión falla. En su lugar, devuelve verdadero si tiene éxito, falso si no lo es:

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