您正在使用
pytz,而不仅仅是Python的
datetime。
像dateutil一样,pytz使用Olson
tz数据库。
Olson
tz数据库定义了符合POSIX样式的
Etc/GMT+N时区:
以“ Etc / GMT”开头的区域名称的符号与标准ISO 8601约定相反。在“
Etc”区域中,格林尼治标准时间以西的区域带有正号,而东部地区则具有负号(例如,“ Etc / GMT-14”比格林尼治标准时间早14小时。)
因此,要将UTC转换为偏移量为-5的时区,可以使用
Etc/GMT+5:
import datetime as DTimport pytznaive = DT.datetime(2019, 3, 7, 7, 45)utc = pytz.utcgmt5 = pytz.timezone('Etc/GMT+5')print(utc.localize(naive).astimezone(gmt5))# 2019-03-07 02:45:00-05:00


