下面的代码演示了Now_tz
我们的两种方法为其产生不同结果的值。
import calendar
import pytz
import datetime as dt
tz1 = pytz.timezone('US/Eastern')
utc = pytz.timezone('UTC')
Now = utc.localize(dt.datetime(2002, 10, 28), is_dst=None)
Now_tz = Now.astimezone(tz1)
Now_epoch = calendar.timegm(Now_tz.utctimetuple())
begin_day = tz1.normalize(Now_tz.replace(hour=0, minute=0, second=0))
midnight = tz1.localize(dt.datetime.combine(Now_tz, dt.time(0, 0)), is_dst=None)
if begin_day != midnight:
print(begin_day)
# 2002-10-27 01:00:00-04:00 # my result -- is not midnight
print(midnight)
# 2002-10-27 00:00:00-04:00 # J.F.Sebastian's result is correct
(原始答案已编辑)