卡萨布兰卡的时区无效

时间:2014-04-25 11:31:14

标签: python django timezone pytz

我使用pytz库(django timezone)在我的网站上处理时区,我注意到只有非洲/卡萨布兰卡的错误偏移,这是一个例子:

In [1]: import datetime

In [2]: import pytz

In [3]: from django.utils.dateformat import format

In [4]: paris = pytz.timezone("Europe/Paris")

In [5]: paris.localize(datetime.datetime.now(), is_dst=True)
Out[5]: datetime.datetime(2014, 4, 25, 11, 25, 9, 473706, tzinfo=<DstTzInfo 'Europe/Paris' CEST+2:00:00 DST>)

In [6]: casablanca = pytz.timezone("Africa/Casablanca")

In [7]: casablanca.localize(datetime.datetime.now(), is_dst=True)
Out[7]: datetime.datetime(2014, 4, 25, 11, 25, 23, 416349, tzinfo=<DstTzInfo 'Africa/Casablanca' WET0:00:00 STD>)

In [8]: format(casablanca.localize(datetime.datetime.now(), is_dst=True), "O") == "+0100"
Out[8]: False

请注意,摩洛哥自4月1日起开始使用DST。

由于我们有大量来自摩洛哥的访客,这是一个非常令人沮丧的问题。

任何建议都将不胜感激,提前致谢。

(OS:Ubuntu 12.04)

1 个答案:

答案 0 :(得分:2)

我认为你只有旧版的pytz。我使用最新版本运行您的代码,它显示正确的值。

摩洛哥改变了2014年的夏令时规则。详情herehere

这被放入version 2013g of the time zone database。有关更新信息,请参阅pytz文档的Latest Versions部分。

一般情况下,如果您为全球受众群体提供服务,则应监控pytz atom feedIANA announcements mailing list,并计划每年更新几次。