2010-01-01 2 views

risposta

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

Modificare come si desidera modificare.

+0

Grazie, mi aiuta molto. –

-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

Ho ottenuto questa risposta facendo R & S su quell'argomento. Qui Se abbiamo una stringa come "20100102", allora possiamo ottenere output come "02/01/2010" – Ashish

+3

Bah, questo non è davvero il modo di farlo. – Noldorin

+0

Analisi personalizzata della data FTL. Non reinventare la ruota. – Aaronaught

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

aaaaMMgg è formato di input qui.

E poi se si desidera convertire in stringa:

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

A destra - eccetto che probabilmente ha senso utilizzare "CultureInfo.CurrentCulture" o "CultureInfo.InvariantCulture" che dipendono dallo scenario. – Noldorin

+0

Ho cambiato l'override dell'utente in falso. Quindi ora usa l'impostazione predefinita. Ma non causerà alcun problema qui, anche se ha la precedenza. O mi sbaglio? – JCasso

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

Modifica come necessario.