2012-09-08 5 views
8

Necesito convertir "28/08/2012" al formato MM/dd/YYYY que significa "08/28/2012".
¿Cómo puedo hacer eso?Convertir dd/mm/aaaa en MM/dd/YYYY

Estoy usando el siguiente código, pero me arrojó una excepción.

DateTime.ParseExact("28/08/2012", "ddMMyyyy", CultureInfo.InvariantCulture) 

Respuesta

23

pero tiró excepción a mí

Problema:

Su fecha contiene / separador ("28/08/2012") y no están dando de que en el formato de cadena de fecha ("ddMMyyyy")

Solución:

Debe ser "dd/MM/yyyy".

De esta manera

DateTime.ParseExact("28/08/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture) 
         .ToString("MM/dd/yyyy", CultureInfo.InvariantCulture); 

Después de hacer eso vamos a recibir un objeto DateTime con las fechas pobladas que se transfiere a la cadena mediante .ToString() con formato de fecha deseado "MM/dd/yyyy" y la información de la cultura opcional CultureInfo.InvariantCulture.

+0

Quiero retrivr en formato de cadena –

+0

Si, eso es lo que esto hará. Primero convertirá esto en DateTime y luego de nuevo en la cadena –

+0

@ LajjaThaker: Lee la respuesta actualizada. –

0

Dado que su fecha original es en-GB cultura, puede crear un objeto CultureInfo y analizar su DateTime de forma natural.

string date = "28/08/2012"; 
System.Globalization.CultureInfo ci = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB"); 
Convert.ToDateTime(date,ci.DateTimeFormat).ToString("d");//short date pattern 

(O)

DateTime.Parse(date,ci.DateTimeFormat).ToString("d");