Django - ValueError:无效时区:u'Asia / Seoul ROK'

时间:2014-09-29 04:40:12

标签: django timezone

模板标签“timezone”有一段时间了。

## template
{% load tz %}
{% timezone 'Asia/Seoul ROK' %}
    {{ reservation.datetime|date:"G:i A e" }}
{% endtimezone %}

我已经写过USE_TZ = True / TIME_ZONE ='Asia / Seoul ROK' 我还安装了pytz模块并将模块移动到 我的项目(我在eclipse pydev上开发django。)

每当我运行项目时,我都会遇到以下错误。

Invalid timezone: u'Asia/Seoul ROK'

我怎么能解决这个问题?提前谢谢。

2 个答案:

答案 0 :(得分:2)

尝试Asia/Seoul

Asia/Seoul ROK中没有pytz.all_timezones这样的时区。

修改:因此Asia/Seoul会给您带来同样的错误。

也许pytz没有被导入。

这是错误来自django/utils/timezone.py

try:
    import pytz
except ImportError:
    pytz = None
...
...
if isinstance(timezone, tzinfo):
    _active.value = timezone
elif isinstance(timezone, six.string_types) and pytz is not None:
    _active.value = pytz.timezone(timezone)
else:
    raise ValueError("Invalid timezone: %r" % timezone)

这很可能意味着毕竟pytz是None,你得到错误。

其他时区是否有效?如果没有,那么pytz导入必定是问题。

答案 1 :(得分:0)

我对pytz不太熟悉。但我认为你应该看看这个

Python - Pytz - List of Timezones?

尝试亚洲/首尔

我在python shell中尝试了它并得到了相同的错误

>>> a = pytz.timezone("Asia/Seoul ROK")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pytz-2014.7-py2.7.egg/pytz/__init__.py", line 180, in timezone

pytz.exceptions.UnknownTimeZoneError: 'Asia/Seoul ROK'