【发布时间】:2013-02-22 04:05:17
【问题描述】:
这不是一篇关于技术本身的文章,而是一篇关于适当算法的文章。我希望我的用户能够将我的应用程序上的事件安排在每周的特定时间(他们将在我的网站上以他们的时区显示)发生。
假设纽约的一位用户将活动安排在美国东部标准时间晚上 8 点进行。无论夏令时如何,我希望该用户在全年每周东部标准时间晚上 8 点发生该事件。
目前,我将 UTC 时间值存储在我的数据库中,但 UTC 不会根据一年中的时间而改变。似乎有些时区确实有夏令时的概念,而有些则没有,这意味着如果我要即时进行任何时区转换处理(在任何查询日期以安排事件或显示之前)网站上的预定时间)我必须查看用户的时区是否支持夏令时以及目标时间戳是否在夏令时期间。
人们通常如何解决这类问题?换句话说,我应该如何以最简单的方式在我的数据库中存储一个逻辑时间,正确显示它,使用它来正确调度任务,而不考虑夏令时,对于所有用户时区?
【问题讨论】:
-
而且,比如说,客户端已经移动到另一个时区,它是否也应该在新时区的晚上 8 点运行?