Sen biçimi için d/M/yyyy
kullanırsanız bu tek haneli ve çift basamaklı gün/ay hem idare edecek beri "dd/MM/yyyy"
DateTime dt=DateTime.ParseExact("24/01/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);
Onun daha güvenli formatı ile DateTime.ParseExact
kullanmak gerekir. Ama bu, tek/çift haneli değerler beklediğinize bağlı.
tarihiniz biçimi day/Month/Year
bazı kültürlerde için kabul edilebilir bir tarih biçimini olabilir. Kanadalı Kültür Örneğin en-CA
DateTime.Parse
çalışacak gibi:
DateTime dt = DateTime.Parse("24/01/2013", new CultureInfo("en-CA"));
Ya
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-CA");
DateTime dt = DateTime.Parse("24/01/2013"); //uses the current Thread's culture
dize ait biçimi en-CA
kültürü için kabul edilebilir, çünkü her ikisi de yukarıdaki satırları çalışacak
.
DateTime.Parse
aramanıza herhangi bir kültür sağlamadığınızdan, mevcut kültürünüz tarih formatını desteklemeyen ayrıştırma için kullanılır. Bu konuda daha fazla bilgi edinin
DateTime.Parse.
ayrıştırma için diğer bir yöntem, hatalı değerler üzerinde özel durum değildir DateTime.TryParseExact
DateTime dt;
if (DateTime.TryParseExact("24/01/2013",
"d/M/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt))
{
//valid date
}
else
{
//invalid date
}
Net çerçevesinde yöntemlerden TryParse
grubu kullanarak, bunun yerine başarılı veya hatayı belirten bir bool
değer iade ayrıştırma. Ben sırasıyla gün ve ay için d
ve M
tek kullandık
Bildirimi. Tek d
ve M
, tek ve çift hanelerde gün ve ay için çalışır.biçimi için Yani d/M/yyyy
geçerli değerler olabilir:
- "24/01/2013"
- "24/1/2013"
- "2013/04/12" // 4 Aralık 2013
- "2013/04/12"
ayrıca okuma için görmeniz gerekir: Custom Date and Time Format Strings
Çok teşekkürler göz atın. DateTime.ParseExact() 'ı çoktan denedim ama sanırım hile üçüncü argüman olarak kaldı. Bunun yerine bir derleme hatası verecek CultureInfo.InvariantCulture kullanıyordum. –
@ user1872530, hoş geldiniz, sizin için çalışmalıydı, ama System.Globalization için deyim kullanarak eksiksiniz sanırım, bu yüzden System.Globalization.CultureInfo.InvariantCulture' yerine – Habib
teşekkürler. "Dd/MM/yyyy" kullanıyordum ve ayrıştırma "3/12/2016" için "d/M/yyyy" olarak değiştirilemedi, gün ve ay değerleri <10'a artık sıfır olarak eklenmeye gerek kalmadı. – ComeIn