在我的django项目的settings.py文件中,我有这样一行:

TIME_ZONE = 'UTC'

但我想让我的应用程序在UTC+2时区运行,所以我把它改成了

TIME_ZONE = 'UTC+2'

它给出错误ValueError:不正确的时区设置:UTC+2。正确的做法是什么?

谢谢!


当前回答

下载最新的pytz文件(pytz-2019.3.tar.gz): https://pypi.org/simple/pytz/ 复制并解压到项目的site_packages目录 在CMD中进入解压文件夹并运行: Python setup.py安装 TIME_ZONE = 'Etc/GMT+2'或国家名称

其他回答

我发现这个问题是想把我的Django项目的settings.py文件中的时区更改为英国。

使用jfs的解决方案中的tz数据库,我找到了答案:

    TIME_ZONE = 'Europe/London'

从tzinfo数据库中选择一个有效的时区。它们倾向于采用例如Africa/Gaborne和US/Eastern的形式

找到与您最近的城市相匹配的城市,或者与您的时区相匹配的城市,然后将TIME_ZONE的值设置为匹配。

下载最新的pytz文件(pytz-2019.3.tar.gz): https://pypi.org/simple/pytz/ 复制并解压到项目的site_packages目录 在CMD中进入解压文件夹并运行: Python setup.py安装 TIME_ZONE = 'Etc/GMT+2'或国家名称

要从tz数据库中获取所有有效的时区名称(id),你可以在Python中使用pytz模块:

>>> import pytz # $ pip install pytz
>>> pytz.all_timezones_set
LazySet({'Africa/Abidjan',
         'Africa/Accra',
         'Africa/Addis_Ababa',
         'Africa/Algiers',
         'Africa/Asmara',
         'Africa/Asmera',
         ...
         'UTC',
         'Universal',
         'W-SU',
         'WET',
         'Zulu'})

添加Preferred TIME_ZONE并设置USE_TZ为False,如下所示

TIME_ZONE = '亚洲/加尔各答' USE_TZ = False

希望它能起作用。