2012-07-03 11 views
8

Geçerli tarih saatini kontrol etmek için Datetime.TryParse yöntemini kullanıyorum. giriş tarihi dizesi herhangi bir dizgi verisi olurdu. ancak geçersiz olarak belirtme tarihi olarak false döndürüyor.DateTime.TryParse yöntemiyle geçerli bir tarih denetimi

DateTime fromDateValue; 
if (DateTime.TryParse("15/07/2012", out fromDateValue)) 
{ 
    //do for valid date 
} 
else 
{ 
    //do for in-valid date 
} 

Düzenleme: i kaçırdı. Geçerli tarihi tarihini "15/07/2012 12:00:00" olarak kontrol etmem gerekiyor.

herhangi bir öneriniz bekliyoruz ....

+4

kontrol edebilirsiniz ... ayrıştırma kullanıcının kültürü bağlıdır. Her zaman akılda tutmaya çalışın? "15/07/2012", ABD'de olmasa da, Fransa'da geçerli ... – Kek

+1

, AA/GG/YYYY biçimini bekleyeceğiniz bir yer kullanıyorsanız, 15/07/2012 geçersiz bir tarihtir. – Jason

+1

@Jason Haklısınız, yerel ayarım MM/dd/yyyy formate. ve bu yüzden geçersiz. – Sujit

cevap

21

Sen desteklemek istediğiniz olası biçimleri bir koleksiyon geçmesine izin verir TryParseExact yöntemi kullanabilirsiniz. TryParse yöntemi kültüre bağımlıdır, dolayısıyla kullanmaya karar verirseniz çok dikkatli olun. Örneğin bu şekilde

: Eğer format halinde sabit var gibi gibi TryParseExact kullanarak olmalıdır

DateTime fromDateValue; 
string s = "15/07/2012"; 
var formats = new[] { "dd/MM/yyyy", "yyyy-MM-dd" }; 
if (DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out fromDateValue)) 
{ 
    // do for valid date 
} 
else 
{ 
    // do for invalid date 
} 
0

. Başkalarının dediği gibi sen

DateTime.ParseExact([yourdatehere], 
        new[] { "dd/MM/yyyy", "dd/M/yyyy" }, 
        CultureInfo.InvariantCulture, 
        DateTimeStyles.None); 
0

, sen TryParseExact kullanabilirsiniz için böyle

şey de çalışabilir. Detaylı bilgi ve zaman kullanım için

, sen Bu her zaman tehlikeli bir şeydir MSDN Documentation

İlgili konular