繁体   English   中英

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

[英]Cannot convert dateTime string with Datetime.ParseExact

这是我的确切字符串:18-2-2014 00:00:00

我的代码碰到了这个错误:

mscorlib.dll中发生了未处理的“System.FormatException”类型异常

附加信息:字符串未被识别为有效的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".

我究竟做错了什么?

mm说明符是几分钟。 使用M说明符 ,持续数月( 112 )。

hh格式为011212小时制 )。 它没有00小时。 这就是你应该使用002324小时制 )的HH格式的原因。

并且没有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

有关更多信息,请查看;

:由于叶普斯蒂格尼尔森指出 ,因为我们不知道你的文化究竟(可以是nl-BEnl-NL )的ShortDatePattern一天是ddd

这就是为什么你可能需要使用d格式代替dd

试试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM