DateTime使用自定义格式进行解析

时间:2013-09-05 08:09:34

标签: c#

我正在尝试使用以下方法解析日期时间值:

DateTime insertedDateTime = DateTime.ParseExact(tokens[0] + " " + tokens[1], "yyyy-MM-dd mm:hh:ss", CultureInfo.InvariantCulture);

//tokens[0] = 2013-09-05 
//tokens[1] = 07:23:32

我收到此错误:

  

字符串未被识别为有效的DateTime。

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:6)

你应该写:

DateTime insertedDateTime = DateTime.ParseExact(tokens[0] + " " + tokens[1], "yyyy-MM-dd mm:HH:ss", CultureInfo.InvariantCulture);

因为hh表示12小时的时间而HH表示24小时的时间,并且在12小时内将23作为小时无效:)

当然,如果你确定时间是你的第二小时,而你又不想写HH:mm:sshh:mm:ss(12小时格式)

DEMO here

答案 1 :(得分:4)

小时数应先行:"yyyy-MM-dd hh:mm:ss"

注意:请考虑使用24小时HH格式而不是12小时hh格式。

答案 2 :(得分:3)

您应该将mm:hh:ss更改为hh:mm:ss,因为您首先提供字符串小时部分。

DateTime insertedDateTime = DateTime.ParseExact(2013-09-05 07:23:32, "yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture);
Console.WriteLine(insertedDateTime);

输出将是;

9/5/2013 7:23:32 AM

这是DEMO

了解更多信息;

答案 3 :(得分:1)

尝试使用

string strdate= "yourdate";
DateTime.ParseExact(strdate, "M/d/yyyy hh:mm", CultureInfo.InvariantCulture);