我正在尝试解析时间。我已经多次看到这个问题在这里被问过/回答过,但不是针对这个特定场景的。这是我的代码:
var time1 = DateTime.ParseExact("919", "Hmm", CultureInfo.InvariantCulture);
还有
var time2 = DateTime.ParseExact("919", "Hmm", null);
这两个都抛出相同的
"String was not recognized as a valid DateTime"
我想要的是 9:19 AM
。
有关更多信息,我还需要将 “1305”
解析为 1:05 PM
,这工作正常。
在我看来,我使用的格式是正确的。我忽略了什么?
最佳答案
我不确定是否有任何格式可以处理这个问题。问题是“H”可以是一位或两位,所以如果有两位可用,它会同时获取两个数字 - 在这种情况下将其解析为小时 91,这显然是无效的。
理想情况下,您可以将格式更改为 HHmm
- 在适当的地方用零填充值 - 这样“0919”就可以正常解析了。或者,在格式中使用冒号来区分小时和分钟。我不相信有任何方法可以让 DateTime
像您希望的那样解析值“919”...所以您需要以某种方式调整字符串在解析它之前。 (我们没有足够的上下文来推荐一种特定的方法。)
关于c# - 使用 DateTime.ParseExact 的短时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28966157/