DateTime.TryParseExact未按预期工作

Car*_*any 2 c#

为什么这不起作用?

DateTime.TryParseExact(text, "H", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out value);
Run Code Online (Sandbox Code Playgroud)

我想解析一个仅提供小时部分的Time值,但它会抛出FormatException.

另一方面,这工作:

DateTime.TryParseExact(text, "HH", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out value)
Run Code Online (Sandbox Code Playgroud)

谁知道原因?

谢谢.

AHM*_*AHM 6

好吧,我不得不看一下这个 - 似乎它应该工作,但它不是因为自定义格式字符串无效.自定义格式字符串必须至少两个字符宽 - 请参阅:

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#UsingSingleSpecifiers

因此,根据文档,您可以使用以下代码解决此问题:

DateTime.TryParseExact(text, "%H", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out value);
Run Code Online (Sandbox Code Playgroud)