这是我拥有的确切字符串:18-2-2014 00:00:00
我的代码遇到了这个错误:
在这一行:
newDateTime = DateTime.ParseExact(
part[0],
"dd-mm-jjjj hh:mm:ss",
CultureInfo.InvariantCulture
); //I tried a couple of time string variations, but it should be the above or "dd-m-jjjj hh:mm:ss".
我究竟做错了什么?
最佳答案
mm
specifier 是分钟。使用 M
specifier 几个月( 1
到 12
)。
hh
格式用于 01
到 12
(12 小时制)。它没有 00
作为一个小时。这就是为什么您应该使用 HH
格式,该格式用于 00
到 23
(24 小时制)。
并且没有 jjjj
日期和时间格式说明符,我认为您想使用 yyyy
格式。
var s = "18-2-2014 00:00:00";
var date = DateTime.ParseExact(s,
"dd-M-yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
Console.WriteLine(date);
输出将是;
2/18/2014 12:00:00 AM
这里是
demonstration
。有关更多信息,请查看;
Custom Date and Time Format Strings
注意 :作为 Jeppe Stig Nielsen pointed ,因为我们不完全了解你的文化(可以是
nl-BE
或 nl-NL
)你的 ShortDatePattern
日是 d
而不是 dd
。这就是为什么您可能需要使用
d
格式而不是 dd
。关于c# - 无法使用 Datetime.ParseExact 转换 dateTime 字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22016751/