2010-01-01 25 views

Respuesta

14
var userdateformat = DateTime.ParseExact("20101020", "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); 

Modifique como desee modificar.

+0

Gracias, me ayuda mucho. –

-3
string strStartDateMain = "20100102"; 
string strStartDateFinal = new DateTime(Convert.ToInt32strStartDateMain.Substring(0, 4)), Convert.ToInt32(strStartDateMain.Substring(4, 2)), Convert.ToInt32(strStartDateMain.Substring(6))).ToString("dd/MM/yyyy"); 
+0

Recibí esta respuesta haciendo investigación y desarrollo sobre ese tema. Aquí si tenemos una cadena como "20100102", entonces podemos obtener una salida como "02/01/2010" – Ashish

+3

Bah, esta no es la forma de hacerlo. – Noldorin

+0

Análisis de fecha personalizado FTL. No reinventar la rueda. – Aaronaught

9
IFormatProvider culture = new CultureInfo("en-EN", false); // use your culture info 
DateTime dt = DateTime.ParseExact(myDateTimeString, "yyyyMMdd", culture, DateTimeStyles.NoCurrentDateDefault); 

AAAAMMDD es el formato de entrada aquí.

Y a continuación, si lo desea convertirlo a cadena:

String output = String.Format("{0:dd/MM/yyyy}", dt); 
+0

Derecha, excepto que probablemente tenga sentido usar 'CultureInfo.CurrentCulture' o' CultureInfo.InvariantCulture' dependiendo de la situación. – Noldorin

+0

Cambié la anulación del usuario a falso. Entonces usa el valor predeterminado ahora. Pero no causará ningún problema aquí, incluso anula. ¿O estoy equivocado? – JCasso

9
var result = DateTime.ParseExact("20100102", "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); 

Modificar, según sea necesario.

Cuestiones relacionadas