代码之家  ›  专栏  ›  技术社区  ›  Josef

数据库和数据集中日期时间格式的差异

  •  0
  • Josef  · 技术社区  · 4 年前

    我有一个 datetime 我的SQL Server表中包含以下值的列:

    2021-01-27 00:00:00.000
    

    当我从表中获取值时,这个特定字段的数据集现在是

    27.1.2021. 0:00:00
    

    我想把这个值转换成另一种格式,但我得到的是异常

    其他信息:字符串未被识别为有效的日期时间。

    代码:

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

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

    0 回复  |  直到 4 年前
        1
  •  1
  •   Ziarek    4 年前

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

    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"]