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

大兔子大兔子 提交于 2019-11-27 06:42:06

问题


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.


回答1:


"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);



回答2:


Try this:

DateTime dt = DateTime.ParseExact(time, "u", CultureInfo.InvariantCulture);

"u" indicates universal sortable format.




回答3:


Though Hans already answered your question in comment section, Here is an MSDN link describing all kinds of date formats used with DateTime.ParseExact method.



来源:https://stackoverflow.com/questions/11232385/datetime-parseexact-does-not-grok-24-hour-time-values

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!