2010-01-01 35 views

cevap

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

Değiştirmek istediğiniz gibi değiştirin.

+0

Teşekkürler, bu bana çok yardımcı oluyor. –

-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

Bu konuyla ilgili Ar-Ge yaparak bu cevabı aldım. Burada "20100102" gibi bir dizgimiz varsa, "02/01/2010" – Ashish

+3

Bah gibi çıktı alabiliriz, bu gerçekten bunu yapmanın yolu değildir. – Noldorin

+0

Özel tarih ayrıştırma FTL. Tekerleği yeniden keşfetme. – Aaronaught

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

yyyyAAgg olan giriş biçimini kullanabilirsiniz.

Ve sonra dizeye dönüştürmek isterseniz:

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

Doğru - senaryoyu bağımlı kılan 'CultureInfo.CurrentCulture' veya' CultureInfo.InvariantCulture 'işlevini kullanması mantıklı olabilir. – Noldorin

+0

Kullanıcı geçersiz kılmayı geçersiz kıldım. Yani şimdi varsayılan kullanır. Fakat burada herhangi bir sorun yaratmayacaktır bile geçersiz kılar. Yoksa yanılıyor muyum? – JCasso

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

Değiştir gerektiği gibi.