Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DateTime.ParseExact() does not grok 24-hour time values?

This line of code:

DateTime dt = DateTime.ParseExact(time, "hh:mm", CultureInfo.InvariantCulture); 

parses a "time" value of "12:45" just fine, but throws an exception of "13:00"

Should I be using some other CultureInfo value, or do I need to append a "pm" to hour values above 12, or ... ?

Error message is: System.FormatException was unhandled Message=String was not recognized as a valid DateTime.

like image 573
B. Clay Shannon-B. Crow Raven Avatar asked Jun 27 '12 18:06

B. Clay Shannon-B. Crow Raven


People also ask

What does DateTime ParseExact do?

ParseExact(String, String, IFormatProvider) Converts the specified string representation of a date and time to its DateTime equivalent using the specified format and culture-specific format information. The format of the string representation must match the specified format exactly.

How to Parse Date format in c#?

TryParse() always try to parse the string value datetime. If conversion succeeded then it returns correct DateTime value and MinValue(1/1/0001 12:00:00 AM) if conversion failed. If string value is null or empty and you are trying to convert it DateTime then it returns MinValue only.


1 Answers

"hh" is the 12-hour clock format (01 to 12). You need to use "HH" for a 24 hour clock.

DateTime dt = DateTime.ParseExact(time, "HH:mm", CultureInfo.InvariantCulture); 
like image 187
Dave New Avatar answered Sep 23 '22 19:09

Dave New