【问题标题】:Converting UTC time to dynamic timezones将 UTC 时间转换为动态时区
【发布时间】:2021-06-15 05:46:39
【问题描述】:

我想将 1623715897 形式的 UTC timestamp19800 形式的 timezone 值转换为时间在 '%H:%M:%S'。我从开放天气 API 获得了这些信息,但我不知道如何转换为给定时间,包括时区值。

我使用了这个代码,但得到了 UTC 时间。

from datetime import datetime
ts = 1623715897
tz = 19800
datetime.utcfromtimestamp(ts).strftime('%H:%M:%S')

我没有找到使用 tz(时区)值的解决方案。

【问题讨论】:

    标签: python datetime timezone utc


    【解决方案1】:

    您需要使用来自datetimetimezonetimedelta

    from datetime import datetime, timezone, timedelta
    ts = 1623715897
    tz = 19800
    >>> datetime.utcfromtimestamp(ts).strftime('%H:%M:%S')
    '00:11:37'
    
    >>> datetime.fromtimestamp(ts, tz=timezone(timedelta(seconds=19800))).strftime('%H:%M:%S')
    '05:41:37'
    

    【讨论】:

    • 旁注,utcfromtimestamp 如果您像这样格式化为字符串,则还可以,但如果使用 datetime 对象,则更好 avoid it
    • 非常感谢。我搜索了过去 2 小时,但没有得到任何结果。
    猜你喜欢
    • 2016-07-06
    • 2013-06-30
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    相关资源
    最近更新 更多