django的settings中,有两个key跟项目的时区有关系:
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = True
下面根据实际的情况来讲解下他们对项目时区的设置
# 1
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = True
# 2
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
# 3
# TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
# 4
# TIME_ZONE = 'Asia/Shanghai'
USE_TZ = True
本地测试过后,分别对应下面的编号结果
| 1 | 2018-09-26 16:45:08 | # utc时间
| 2 | 2018-09-27 00:46:12 | # 本地时间
| 3 | 2018-09-26 11:47:34 | # 巴西时间
| 4 | 2018-09-26 16:56:38 | # utc时间
由结果可得到的结论,USE_TZ 字段是UTC时间的开关。
当 USE_TZ = True时,系统采用UTC时间;
当 USE_TZ = False时,系统采用要看TIME_ZONE(时区)是否设置。若已设置时区,项目采用设置的时区的时间;若未设置,项目采用巴西时区的时间(utc-5),目前还不清楚为什么采用巴西的时区时间。
https://time.is/UTC+8
https://time.is/UTC
https://time.is/UTC-5

本文详细解析了Django项目中TIME_ZONE和USE_TZ两个关键配置的作用,通过实验对比了不同设置下对项目时间显示的影响,揭示了UTC时间与本地时间的切换机制。
1389





