【问题标题】:EntityFramework, Dates and UTCEntityFramework、日期和 UTC
【发布时间】:2018-03-03 20:36:44
【问题描述】:

我有一个带有 DateTimeOffset 的实体(因为 .NET 没有 Date 类),它应该存储一个日期(没有时间)。

问题是,当我在数据库中将日期设置为例如“2017-9-1”时,它被保存为“2017-08-31 22:00:00+00”(少了 2 小时)

我认为它将我的时区偏移量应用于 UTC。

我想在数据库中存储“2017-9-1”。我想到的第一件事是给每个 DateTimeOffet 增加 2 小时,但感觉很假。

还有比这更好的日期处理方式吗?

【问题讨论】:

标签: c# .net date datetime datetimeoffset


【解决方案1】:

我不太确定,但是在格式字符串的日期前加上“0:”,我认为应该把它放在你当前的时间,否则它会默认为UTC。

像这样:

[DisplayFormat(DataFormatString = "{0:yyyy/dd/MM}")]

【讨论】:

  • 这只是关于显示,对吧?我想将确切的日期存储在数据库中。
  • 我不这么认为,它将我当前的时间存储在我的数据库中。我自己的 ATM 有一点 db 问题,所以我无法确定,但我认为它也适用于 db。
【解决方案2】:

如果您使用的是 MS Sql,您可以使用 Date 变量来存储日期。您可以注释实体 DateTimeOffset 属性数据库类型。

[Column(TypeName="date")]

【讨论】:

猜你喜欢
  • 2021-09-29
  • 2012-04-19
  • 2021-10-08
  • 2021-05-14
  • 2023-03-21
  • 2012-10-29
  • 2014-01-06
  • 1970-01-01
  • 2021-04-19
相关资源
最近更新 更多