2

我正在将一个天真的日期时间对象转换为另一个时区。但它不包括 DST(夏令时)。这就是我所做的:

#my datetime object
datetime_from #contains: 05, 07, 2012, 10 00 --- (05-07-2012 10:00)

#Add timezone
ams = datetime_from.replace(tzinfo=pytz.timezone('Europe/Amsterdam'))

print(ams.hour) #prints 10

#convert to GMT
gmt = datetime.astimezone(ams, pytz.timezone("GMT"))

print(gmt.hour) #prints 9

问题是,由于 DST,gmt.hour 应该打印 8 而不是 9。

有没有一种简单的方法可以在此转换中包含 DST?

4

1 回答 1

4
>>> pytz.timezone('Europe/Amsterdam').localize(datetime(2012, 7, 5, 10, 0)).astimezone(pytz.timezone('GMT'))
datetime.datetime(2012, 7, 5, 8, 0, tzinfo=<StaticTzInfo 'GMT'>)
于 2012-07-05T08:53:58.000 回答