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

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

我认为使用 ParseExact 并指定确切的格式就可以了。以上有什么问题?

编辑:

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

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

2 回答 2

1

是的,通常在DateTime格式中Date先出现Time。试试这个:

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);
于 2012-10-27T07:48:29.037 回答
1

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

于 2012-10-27T07:51:28.253 回答