【发布时间】:2010-01-04 08:06:20
【问题描述】:
我很懒,用 DateTime.Now 写了一个插入语句。后来我想到我应该写 DateTime.Now.ToUniversalTime()。这让我想到,ADO 会自动将日期转换为世界时间吗?并在我提取数据时将其恢复到本地?或者我是否需要在每个代码区域自己编写 ToUniversalTime 和 ToLocalTime ?我应该如何在我的网站上正确管理时间?
【问题讨论】:
我很懒,用 DateTime.Now 写了一个插入语句。后来我想到我应该写 DateTime.Now.ToUniversalTime()。这让我想到,ADO 会自动将日期转换为世界时间吗?并在我提取数据时将其恢复到本地?或者我是否需要在每个代码区域自己编写 ToUniversalTime 和 ToLocalTime ?我应该如何在我的网站上正确管理时间?
【问题讨论】:
DateTime 结构包含 Kind 属性,该属性指定值是本地时间还是通用时间(或未指定)。
当您将日期存储在数据库中时,仅存储日期和时间组件。 Kind 组件丢失了,因此当您从数据库中读取 DateTime 值时,您无法判断它存储的是本地时间还是通用时间。
我建议您将世界时存储在数据库中,并在字段名称中加上“UTC”以使字段中存储的内容一目了然,例如CreatedUtcDate。
【讨论】: