无法使用Datetime.ParseExact转换dateTime字符串

时间:2014-02-25 14:14:05

标签: c# datetime

这是我拥有的确切字符串: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".

我做错了什么?

2 个答案:

答案 0 :(得分:3)

mm specifier是几分钟。使用M specifier这几个月(112)。

hh格式适用于0112 12小时制)。它没有00一小时。这就是为什么你应该使用00格式23jjjj 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-NLd){{3 } {是} dd而不是d

这就是为什么您可能需要使用dd格式而不是{{1}}。

答案 1 :(得分:-1)

试试这个:

newDateTime = DateTime.ParseExact(part[0],"dd-M-yyyy HH:mm:ss", 
                    CultureInfo.InvariantCulture);