【发布时间】:2020-05-08 01:20:00
【问题描述】:
我正在使用 MVC .Net Core API,该 API 将 DateTime 值注入为 YYYY-MM-DDThh:mm:ss.sTZD。但是,当它将数据发布到 SQL 数据库时,它会显示为 YYYY-MM-DDThh:mm:ss.s。 (以下问题示例)
输入
2020-01-21T17:05:30.3416751-05:00
写入数据库的内容
2020-01-21 22:05:30.343
鉴于输入格式在输入示例的情况下使用 -05:00 指定时区,我如何确保在写入数据库之前将值转换为本地?
我曾尝试在 Context 构造函数中更改我的模型构建器,但这对 EntityFramework 非常有用,但不适用于 EntityFramework Core。
【问题讨论】:
-
你使用 SQL Sever 还是别的什么?数据库中日期的列类型是什么?
-
是的,我使用 SQL Server。 Column 类型只是 DATETIME,当我尝试使用 Datetime 偏移量时,它不会在字段上留下“-05:00”,它只是将列重新转换为 YYYY-MM-DDThh:mm:ss.s 并且总是附加一个 +00
-
DateTime是一个时区感知类,它会将日期四舍五入到最接近的四舍五入值。您是否尝试过使用DateTimeOffset类而不是DateTime。它可能会解决您的问题docs.microsoft.com/en-us/dotnet/api/…
标签: c# sql asp.net-core asp.net-core-mvc entity-framework-core