Python 在任何地方打印相同的时间戳

Python print the same timestamp the same anywhere

我得到了一个以秒为单位的时间戳,我'inherited'一个函数以人类可读的形式打印它,但该函数是特定于语言环境的;也就是说,主机配置的时区很重要。无论我在哪个时区,我都想将该时间打印为格林威治标准时间。例如,这是山地时间计算机上的序列(值 315878400 是 'magic number'):

>>> import time
>>> secs = 1308512779
>>> tmp = secs + 315878400
>>> print(time.ctime(tmp))
Tue Jun 22 13:46:19 2021

这里是在太平洋时间的计算机上:

>>> import time
>>> secs = 1308512779
>>> tmp = secs + 315878400
>>> print(time.ctime(tmp))
Tue Jun 22 12:46:19 2021

给定以秒为单位的相同时间,我想 运行 在任何地方使用相同的代码并获得相同的输出字符串。由于我无法控制秒数据本身的来源,因此假设它是 GMT 是可以接受的。我在 Web 上找到的所有内容都是关于如何获取本地时间的,而这不是本文的内容。任何帮助将不胜感激。

听起来你在描述 Unix time。 Python 使得从 Unix 时间获取日期时间对象变得非常容易!

from datetime import datetime

def convert(timestamp):
    return datetime.utcfromtimestamp(timestamp)

print(convert(1308512779))
# prints: 2011-06-19 19:46:19