我希望能够将这个问题及其答案作为处理夏令时的权威指南,特别是处理实际的变更问题.
如果您有任何要添加的内容,请执行此操作
许多系统依赖于保持准确的时间,问题在于由于夏令时改变时间 - 向前或向后移动时钟.
例如,在订单获取系统中有一个业务规则取决于订单的时间 - 如果时钟发生变化,规则可能不那么明确.如何保持订单的时间?当然有无数的场景 - 这只是一个说明性的场景.
同样重要的是,如果不是这样的话:
我会对编程,操作系统,数据持久性和该问题的其他相关方面感兴趣.
一般答案很好,但我也希望看到细节,特别是如果它们只在一个平台上可用.
我想知道是否有任何充分的理由将时间信息存储在UTC(GMT)的其他任何内容中?我相信这是所有软件工程的坚实规则.转换为本地时间仅仅是在UI层发生的用于显示目的的转换.我还看到了需要翻译才能正确实现算法(处理午夜日期更改等)的情况.
我目前正在将一个不在办公室的系统添加到一个网站,用户可以在其中标记他们的办公室日期和时间,以便他们可以提供其他用户的信息,以便在他们外出时用作备份.
我遇到的问题是将用户的本地时间转换为UTC.我已经看到通过向用户提供UTC以及让客户端(js)将时间转换为本地时间来解决此问题的其他帖子.但是,我可以访问一个专有系统,我可以根据用户的时区偏好来转换日期服务器端.
我的问题是:我应该使用服务器端转换,这将允许用户的家庭要提供本地时间(比方说,他们在美国的时候,无论在哪里,他们登录),或者我应该使用客户端转换?
有人对这个有经验么?每种方法有哪些不太明显的优点/缺点?
我正在构建ac#calendar应用程序并将所有日期时间存储在Microsoft SQL-Server DateTime2类型中.此数据类型可使用">","> ="等运算符进行搜索.
我现在已经阅读了有关该主题的更多信息,例如这些帖子:
以UTC格式存储时间总是一个好主意,还是在本地时间存储更好?
我相信在使用UTC和处理不同的DST值时,尤其是在与未来重复事件相关时,我犯了一个错误.
我当前的实现适用于事件,直到重复序列超过DST时间更改.
我相信我现在需要存储当地时间,当地时区和可能的UTC时间
我应该如何构建我的数据库以及我应该使用哪些数据类型将数据存储在数据库中,该数据库将支持不同的客户端时区和DST值,同时还允许我查询指定的开始和停止日期时间范围内的匹配?
这是一个与this 类似的问题。
我真的很想在我的应用程序中将日期时间存储为本地时间而不是 UTC(这被认为是最佳实践)。在应用程序中,我发生了许多事件,每个事件都分配给给定的位置。当我向用户显示它们时,我总是想显示事件的当地时间。IE:
====================================================================================
Event time (with TZ) | As UTC | As local time | To be displayed |
====================================================================================
2014-01-15 22:30 GMT | 2014-01-15 22:30 | 2014-01-15 22:30 | 2014-01-15 22:30 |
2014-01-15 23:30 GMT+1 | 2014-01-15 22:30 | 2014-01-15 23:30 | 2014-01-15 23:30 |
2014-01-16 00:30 GMT+2 | 2014-01-15 22:30 | 2014-01-16 00:30 | 2014-01-16 00:30 |
====================================================================================
Run Code Online (Sandbox Code Playgroud)
如果我决定以 UTC 格式存储事件时间:
显示它们将很困难(因为对于每个事件,我都需要该事件的时区并格式化该时区的日期)。
查询它们将非常困难(即,如果我想显示当地时间 2014-01-15 发生的所有事件,我需要每个事件将该事件的时间与该事件中“2014-01-15”的含义进行比较时区。不确定这在 SQL 中是否可能......)
如果我决定将事件时间存储为当地时间:
由于在应用程序中的绝大多数情况下,我对当地时间(通常显示所谓的“电视时间”)感兴趣,并且没有很多情况我创建新的日期时间对象(为此我需要位置时区),我相信在这种情况下将日期时间保存为当地时间是合理的。
你认为是吗?存储当地时间还有哪些其他缺点?
预先感谢您的关注和帮助。
utc ×5
datetime ×3
time ×3
date ×2
dst ×2
timezone ×2
c# ×1
localization ×1
sql-server ×1
web ×1