数据库和数据集中日期时间格式的区别

Difference between DateTime formats in Database and Dataset

我的 SQL 服务器 table 中有一个 datetime 列,其中包含如下值:

2021-01-27 00:00:00.000

当我从 table 获取值时,我的这个特定字段的数据集现在就像

27.1.2021. 0:00:00

我想将此值转换为另一种格式,但我得到的是异常

Additional information: String was not recognized as a valid DateTime.

代码:

DateTime dt = DateTime.ParseExact(row["DO_Date"].ToString(), "DD.m.YYYY. H:mm:ss", CultureInfo.InvariantCulture);

为什么 table 中的值与之后数据集中的值存在差异?如何确定正确的格式并转换给定的日期时间?

row["DO_Date"].ToString() returns 一个字符串,它取决于您的本地系统区域日期时间设置。 尝试执行以下操作:

DateTime dt = DateTime.ParseExact(row["DO_Date"].ToString("yyyy-MM-dd HH:mm:ss"), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);

换句话说 - 强制源格式与您要转换成的格式相同。

还有一个更简单的方法:

DateTime dt = (DateTime)row["DO_Date"]