DateTime ParseExact异常

时间:2012-10-27 07:46:35

标签: c# .net datetime

var str = "00:00:00 02/01/1990";
var dt = DateTime.ParseExact(str, "hh:mm:ss dd/MM/yyyy", null);

上面的代码抛出异常“字符串未被识别为有效的DateTime。”

我认为使用ParseExact并指定确切的格式这没关系。上面有什么问题?

编辑:

使用不变文化解决。感谢您的评论。

var dt = DateTime.ParseExact(str, "HH:mm:ss dd/MM/yyyy", CultureInfo.InvariantCulture);

2 个答案:

答案 0 :(得分:1)

通常以DateTime格式提供DateTime之前是var str = "02/01/1990 00:00:00"; var dt = DateTime.ParseExact(str, "hh:mm:ss dd/MM/yyyy", null); 。试试这个:

var str = "00:00:00 02/01/1990";
var split = str.Split(new char[] { ' ' });
if (split.Length == 2)
    str = String.Format("{0} {1}", split[1], split[0]);
var dt = DateTime.ParseExact(str, "hh:mm:ss dd/MM/yyyy", null);

编辑:好的,所以你要做一个技巧来完成它:

{{1}}

答案 1 :(得分:1)

“hh”格式说明符用于12小时AM / PM时间,不支持“00”。尝试在24小时内定义它:HH:mm:ss dd/MM/yyyy