繁体   English   中英

所有日期时间都存储在utc中

[英]All datetimes stored in utc

我正在构建ac#日历应用程序,并已将所有日期时间存储在Microsoft SQL-Server DateTime2类型中。 可以使用“>”,“> =”等运算符搜索此数据类型。

我现在已经阅读了有关该主题的更多信息,例如这些帖子:

夏令时和时区最佳实践

如何存储重复日期并牢记夏时制

将时间存储在UTC中总是一个好主意吗?还是以本地时间存储更好的情况?

我相信在使用UTC并处理不同的DST值时,尤其是与将来的重复事件相关时,我犯了一个错误。

我的当前实现适用于事件,直到重复的序列经过DST时间更改为止。

我相信我现在需要存储本地时间,本地时区以及可能的UTC时间

我应该如何构建数据库结构以及应使用哪种数据类型将数据存储在支持不同客户端时区和DST值的数据库中,同时还允许我查询指定的开始和结束日期时间范围内的匹配项?

对于重复的事件,您肯定需要存储时区,是的,我会存储本地日期/时间。 可能还想存储第一次出现的UTC值,如果这对于比较目的很有用。 从理论上讲,您可以只存储UTC出现的第一个日期/时间,因为可以将其明确地转换为本地时间(如果您具有时区)-但很可能您只需要本地时间,即在哪种情况下执行这些转换可能毫无意义。

您还应该考虑如何处理时区数据的更改-因为时区规则确实会相当频繁地更改。 (当然,这取决于国家/地区。)例如,为了提高效率,您可能需要生成一定数量的事件并存储每个事件的UTC日期/时间(已计算出由于以下原因导致的当地时间过时和模棱两可的处理方式: DST转换)-但是,如果时区数据发生变化,则需要针对所有重复事件再次执行该生成步骤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM