如何为Web应用程序保留准确的时间(夏令时)?

时间:2009-10-26 22:20:29

标签: web-applications timezone dst

好的,这可能是一个简单的问题,但我还没有找到一个有效的解决方案,所以对于任何可以提前帮助的人都可以。

考虑以下场景:我们在MySQL上运行的Web应用程序(如果您需要知道)与时间相关,例如在用户指定的时间发送电子邮件的应用程序。现在每个用户都设置了他的正确时区/城市,并且服务器在UTC上运行以简化。准确的时间是服务器时间+时区+夏令时。用户希望该电子邮件在2010年1月4日下午5:00与他联系。 我的问题是如何获得正确的夏令时?意思是这个用户在观察DST的区域中,如果他/她观察到它还是没有观察到它?

我的第一个冲动是找到一个网络服务,给定当前时区/城市将为您提供适当的夏令时。到目前为止我还没有找到一个。我对第二个想法感到沮丧,即我必须为DST制定规则,因为这些规则每年都会发生变化,在某些国家会有一两天以上的变化。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

如果您的编程语言不支持花哨的时区逻辑,则您不必自己编写规则。您只需要为zoneinfo数据库编写支持。

答案 1 :(得分:0)

将自1970年1月1日格林威治标准时间1970年1月1日起的日期存储在您的数据库中,您将始终有时间处理。当用户输入他的时间时,使用正确的时区设置适当地转换它,你就完成了。

您的服务器已经在没有时区的情况下运行,所以到时候它很容易选择。

这是some code在LISP中进行时区转换: