这是我拥有的确切字符串: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 几个月( 112 )。

hh 格式用于 0112(12 小时制)。它没有 00 作为一个小时。这就是为什么您应该使用 HH 格式,该格式用于 0023(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-BEnl-NL )你的 ShortDatePattern 日是 d 而不是 dd

    这就是为什么您可能需要使用 d 格式而不是 dd

    关于c# - 无法使用 Datetime.ParseExact 转换 dateTime 字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22016751/

    10-12 01:05
    查看更多