Date and time handling in applications serving clients in multiple time-zones?
与字符串处理相关的国际化问题几乎可以通过遵循以下建议来解决:使用Unicode并将所有内容存储为数据库中的UTF-8,然后您就可以使用世界上所有语言为客户提供服务。
但与日期/时间处理相关的国际化问题又如何呢?
问题:
- 是否有类似的易于遵循的最佳实践来解决围绕时间处理的国际化问题?
- 您如何确保您的应用程序可以为在不同时区运营的客户提供服务? 你遇到了什么问题,你是如何解决的?
我有以下建议,
希望我们的一些错误能帮助你避免它们。
ZZCoder有一些好处。这里还有一些:
- 所有日期时间值都必须具有关联的时区。如果日期时间没有一个,你应该定义它意味着什么(例如,在某些情况下,它将意味着GMT + 0;在其他情况下,这是因为代码正在计算它并分配一个)。
- 您可能需要将具有日期时间的事件附加到某个位置。这意味着您将有办法确定何时允许更改日期时间的时区。这解决了生日移动的问题,但它也允许在夏令时开始或结束时的智能行为。但是,要注意意外的关系:为不同时区的几个人设置会议应该引用一个规范条目,而不是复制日期时间并将它们本地化。
- 不要自己做计算:始终总是要求库函数进行日期时间计算。
通过使用一些JavaScript让客户告知我们他们的时区,我有一些运气。如果我记得它涉及在当地时间计算用户机器上的当前时间,然后将其与Zulu进行比较。