如果您尝试制作,则会引发
pytz.NonExistentTimeError
异常 在DST过渡期间value
知道时间从未发生过 (进入DST时)。将is_dst
设置为True
或False
可以避免 将小时向后或向前移动1来例外 分别。例如,is_dst=True
将改变不存在的 时间为2:30至1:30,is_dst=False
将时间改为3:30。
所以我希望时间可以向前或向后移动,具体取决于is_dst
的值。
但是从我的测试来看,时区正在转移,而不是时间。我误解了Django文档还是这个错误?
我测试了以下内容:
import pytz
import datetime
from django.utils.timezone import make_aware
tz = pytz.timezone('America/Sao_Paulo')
dt = datetime.datetime(2017, 10, 15 ,0 ,0)
print(make_aware(dt, tz)) # NonExistentTimeError
print(make_aware(dt, tz, True)) # 2017-10-15 00:00:00-02:00
print(make_aware(dt, tz, False)) # 2017-10-15 00:00:00-03:00
2017-10-15是DST将在America/Sao_Paulo
时区开始,所以当时钟到达00:00时,它应该跳到01:00。 <{1}}方法返回的日期时间不存在。