1

我有一个带有DATETIME格式化列的 MySQL 数据库,其中填充了行条目的日期。此数据在我的项目中被格式化为"dd/MM/yyyy hh:mm:ss tt".

我想将此日期动态转换为日期时间对象(从每个数据库条目),但我目前收到错误

“字符串未被识别为有效的日期时间。”

但是,如果我使用实际输出的日期字符串,它确实有效:

using System.Globalization;

var date = DateTime.ParseExact("11/12/2013 11:13:45 PM", 
                               "dd/MM/yyyy hh:mm:ss tt", 
                               CultureInfo.InvariantCulture);

但是如果我动态添加日期,它就不起作用:

using System.Globalization;

var dt = item.Timestamp;
var date = DateTime.ParseExact(dt, 
                               "dd/MM/yyyy hh:mm:ss tt", 
                               CultureInfo.InvariantCulture);

如果我要输出dt变量,它将显示为"11/13/2013 11:13:21 PM".

谁能看到为什么我的动态日期没有被识别?

4

1 回答 1

1

实际上,您的问题是日月顺序。
最后你说日期显示为"11/13/2013 11:13:21 PM"
在这种情况下,您需要按照正确的顺序进行解析;它出错是因为没有第 13 个月。

因此,将格式设置为"MM/dd/yyyy hh:mm:ss tt".

换句话说,你昨天不会注意到这个问题!

于 2013-11-13T12:07:09.960 回答