注意:我的回答是绝对错误的。 (我想删除它,但是在删除accept标志之前无法删除它。)
下面的代码演示了
now_tz我们的两种方法为其产生不同结果的值。
import calendarimport pytzimport datetime as dttz1 = 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(原始答案已编辑)



