Python: 将本地化时间戳转换为 utc 时间戳
Python: convert localized timestamp to utc timestamp
外部设备为我提供了本地化时区的时间戳。
这意味着我得到自 1970 年 1 月 1 日以来的秒数 00:00:00 IN LOCALTIME.
我需要将其转换为 UTC 时间戳(或任何其他标准符号)以使用它来设置 Linux 时钟(例如:"date -s @< timestamp >")。
我当前的 TZ 是 CEST (Europe/Rome),但这可能会改变。
正确的做法是什么?
您可以 add/take 当前时区与 UTC 之间的时差(以秒为单位)。
例如,如果你在 CEST,那么这是 UTC+2,所以你可以简单地做:
utc = timestamp + (-1 * 2 * 60 * 60)
一小时 60 分钟,一分钟 60 秒,2 因为我们距离 UTC 2 小时,-1 因为我们领先它。
只需将本地时区与 UTC 的时差应用于您检索到的时间戳 - 最简单的方法是改用 time.altzone
(if you don't want to account for DST, use time.timezone
)并将其添加到您的时间戳中,因此:
import time
timestamp = 1532821394 # current CEST timestamp
utc_timestamp = timestamp + time.altzone # 1532814194, UTC+2 atm.
外部设备为我提供了本地化时区的时间戳。 这意味着我得到自 1970 年 1 月 1 日以来的秒数 00:00:00 IN LOCALTIME.
我需要将其转换为 UTC 时间戳(或任何其他标准符号)以使用它来设置 Linux 时钟(例如:"date -s @< timestamp >")。 我当前的 TZ 是 CEST (Europe/Rome),但这可能会改变。
正确的做法是什么?
您可以 add/take 当前时区与 UTC 之间的时差(以秒为单位)。
例如,如果你在 CEST,那么这是 UTC+2,所以你可以简单地做:
utc = timestamp + (-1 * 2 * 60 * 60)
一小时 60 分钟,一分钟 60 秒,2 因为我们距离 UTC 2 小时,-1 因为我们领先它。
只需将本地时区与 UTC 的时差应用于您检索到的时间戳 - 最简单的方法是改用 time.altzone
(if you don't want to account for DST, use time.timezone
)并将其添加到您的时间戳中,因此:
import time
timestamp = 1532821394 # current CEST timestamp
utc_timestamp = timestamp + time.altzone # 1532814194, UTC+2 atm.