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.