1

I am trying to parse a datetime value using this:

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

I am getting this error:

String was not recognized as a valid DateTime.

Any help would be appreciated.

4

4 回答 4

9

你应该写:

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

因为hh表示 12h 时间和HH表示 24h 时间并将 23 作为小时在 12h 时间是无效的:)

当然,如果您确定小时数在您的时间中排在第二位并且您不想写HH:mm:sshh:mm:ss(对于 12h 格式)

演示在这里

于 2013-09-05T08:11:09.000 回答
4

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

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

于 2013-09-05T08:12:13.483 回答
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

欲了解更多信息;

于 2013-09-05T08:12:42.180 回答
2

尝试使用

string strdate= "yourdate";
DateTime.ParseExact(strdate, "M/d/yyyy hh:mm", CultureInfo.InvariantCulture);
于 2013-09-05T08:17:35.417 回答