是否有可能,如果是,如何获取用于将POSIX 时间戳(自纪元以来的秒数)转换为对象的时区(即 UTC 偏移量或datetime.timezone
具有该偏移量的实例) ?datetime.datetime.fromtimestamp()
datetime
datetime.datetime.fromtimestamp()
将 POSIX 时间戳转换为天真的datetime
对象(即没有tzinfo
),但这样做是使用系统的语言环境将其调整为本地时区和当时有效的 UTC 偏移量。
例如,使用 UTC 时间 2008 年 12 月 27 日午夜的日期(自纪元以来的 40 * 356 * 86400 秒):
>>> datetime.datetime.fromtimestamp(40 * 356 * 86400)
datetime.datetime(2008, 12, 27, 1, 0)
该时间戳在凌晨 1 点转换为datetime
对象(当时是在 CET/CEST 时区)。100 天后,结果如下:
>>> datetime.datetime.fromtimestamp((40 * 356 + 100) * 86400)
datetime.datetime(2009, 4, 6, 2, 0)
也就是凌晨 2 点。这是因为那时 DST 处于活动状态。
我预计这datetime.datetime.fromtimestamp()
会设置tzinfo
它在返回的datetime
实例中使用的,但事实并非如此。