这是我拥有的确切字符串:18-2-2014 00:00:00
我的代码碰到了这个错误:
发生了'System.FormatException'类型的未处理异常 mscorlib.dll中
其他信息:字符串未被识别为有效的DateTime。
在这一行:
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".
我做错了什么?
答案 0 :(得分:3)
mm
specifier是几分钟。使用M
specifier这几个月(1
到12
)。
hh
格式适用于01
到12
( 12小时制)。它没有00
一小时。这就是为什么你应该使用00
格式23
到jjjj
( 24小时制)的格式。
并且没有var s = "18-2-2014 00:00:00";
var date = DateTime.ParseExact(s,
"dd-M-yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
Console.WriteLine(date);
日期和时间格式说明符,我认为您希望使用HH
格式。
2/18/2014 12:00:00 AM
输出将是;
nl-BE
这里有 yyyy
。
有关更多信息,请查看;
注意:作为Jeppe Stig Nielsen Custom Date and Time Format Strings
,因为我们不完全了解您的文化(可以nl-NL
或d
){{3 } {是} dd
而不是d
。
这就是为什么您可能需要使用dd
格式而不是{{1}}。
答案 1 :(得分:-1)
试试这个:
newDateTime = DateTime.ParseExact(part[0],"dd-M-yyyy HH:mm:ss",
CultureInfo.InvariantCulture);