首页 > 解决方案 > 如何将 UTC 日期时间对象转换为本地时间元组?

问题描述

我有一个日期时间对象t,它是 UTC 时间,但附加了阿拉斯加时区偏移量(-08:00):

t
-> datetime.datetime(2019, 3, 23, 15, 49, 34, tzinfo=tzfile('/usr/share/zoneinfo/America/Anchorage'))

我尝试t在阿拉斯加本地时间转换为日期时间元组。我确实喜欢这样,但我仍然得到 UTC 时间。

time.strptime(str(t),"%Y-%m-%d %H:%M:%S%z")
-> time.struct_time(tm_year=2019, tm_mon=3, tm_mday=23, tm_hour=15, tm_min=49, tm_sec=34,\
 tm_wday=5, tm_yday=82, tm_isdst=-1)

所以time.strptime()不会处理偏移量,即使我以格式输入(%z 表示偏移量)?

我应该怎么做才能得到:

-> time.struct_time(tm_year=2019, tm_mon=3, tm_mday=23, tm_hour=7, tm_min=49, tm_sec=34,\
 tm_wday=5, tm_yday=82, tm_isdst=-1)

tm_hour我想要的是 7 = 15 - 8)

非常感谢!

标签: python-3.xdatetimetimezonetimezone-offsetlocaltime

解决方案


推荐阅读