DateTime TryParse Task

string date = txtWorkingDate.Text; DateTime dateTime = DateTime.MinValue; if (DateTime.TryParse(date, out dateTime)) { args.IsValid = true; } else args.IsValid = false; 

txtWorkingDate.Text is similar to "dd.MM.yyyy" because this check is always false if the date is not like "dd.MM.yyyy". How can I check date types such as "dd.MM.yyyy", "MM / dd / yyyy" are valid.

+4
source share
3 answers

Using this overload and providing accepted formats:

 string date = txtWorkingDate.Text; DateTime dateTime; string[] formats = new[] { "dd.MM.yyyy", "MM/dd/yyyy" }; if (DateTime.TryParseExact(date, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime)) { args.IsValid = true; } else { args.IsValid = false; } 
+17
source
 System.Globalization.CultureInfo cultureinfo = new System.Globalization.CultureInfo("en-gb"); DateTime dt = DateTime.Parse("13/12/2009", cultureinfo); 

You need to indicate the culture, assuming that you know it.

+2
source

you can use

 DateTime.TryParse( string s, IFormatProvider provider, DateTimeStyles styles, out DateTime result ) 

overload.

Also, you don't need if, you can just write

 args.IsValid = DateTime.TryParse(...); 

Since DateTime.TryParse() already returns bool.

+1
source

All Articles