我正在寻找最佳实践解决方案。
以stackoverflow为例,我问了一个问题:
我住在以色列,现在时间是:
我确实在~17:58(现在3小时前)问了一些事情
然而,它确实显示“3小时前” AND 显示UTC时间。 (以色列是+2)
所以要么它会保存UTC和我的偏移量
或它只保存UTC,在客户端的JS中显示当地时间。
现在我的问题来自数据库的观点:
我可以检测客户端通过JS命令连接的位置:
new Date().getTimezoneOffset(); //-120
我可以存储它,如:
data | UTCTime | userOffset
----------------------------------------
... 2012-12-24 15:36:31 -2
问题
这是存储全球事件(日期时间)的最佳解决方案吗?
在c#中有一个DateTimeOffset
结构类型,用于存储其中的偏移量。
在Sql server中有没有相应的解决方案?
答案 0 :(得分:2)
根据this post:您应该始终保持统一日期。所以UTC将是最好的选择。
另一方面 - 当您拥有UTC日期时,您可以根据某个时区轻松地显示它(不仅适用于作者,也适用于所有人)。
答案 1 :(得分:1)
是。 MS SQL Server 2008引入了datetimeoffset。