当我运行这段代码时:
#!/usr/bin/env python3
from datetime import datetime, timedelta
from dateutil import tz
from pytz import timezone
time = "2020-01-15 10:14:00"
time = datetime.strptime(time, "%Y-%m-%d %H:%M:%S")
print("time1 = " + str(time))
time = time.replace(tzinfo=timezone('America/New_York'))
print("time2 = " + str(time))
time = time.astimezone(tz.gettz('UTC')) # explicity convert to UTC time
print("time3 = " + str(time))
time = datetime.strftime(time, "%Y-%m-%d %H:%M:%S") # output format
print("done time4 = " + str(time))
我得到了这个输出:
time1 = 2020-01-15 10:14:00
time2 = 2020-01-15 10:14:00-04:56
time3 = 2020-01-15 15:10:00+00:00
done time4 = 2020-01-15 15:10:00
我本以为最终时间应该是“2020-01-15 15:14:00”,有人知道为什么会慢了4分钟吗?我不明白为什么time2的偏差是“-04:56”,而不是“-05:00”。