我正在尝试使用以下方法解析日期时间值:
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。
任何帮助都将不胜感激。
答案 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:ss
或hh:mm:ss
(12小时格式)
答案 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);