从不同的纪元转换整数到日期/时间

时间:2014-11-07 17:21:03

标签: python datetime epoch

我正在读取一个设备的时间戳,该设备以整数格式表示,表示自2000年1月1日以来的秒数。使用Python,我如何使用2000年1月1日将其转换为可读日期/时间作为我的纪元?

我尝试了多个datetime函数,但总是以不正确的日期结束。我假设Python自动假设一个不同于我需要的纪元时间(1970年?它已经30年了)。

以下是我目前使用的代码行:

datetime.datetime.fromtimestamp(int(z[i][2])).strftime('%Y-%m-%d %H:%M:%S')

1 个答案:

答案 0 :(得分:1)

您可以使用timedelta来帮助您,例如:

>>> from datetime import datetime, timedelta
>>> base = datetime(2000, 1, 1) # start of your epoch
>>> base + timedelta(seconds=123456789) # add on a number of seconds
datetime.datetime(2003, 11, 29, 21, 33, 9)

您还可以使用timedelta.total_seconds

来撤销该流程
>>> (datetime.now() - base).total_seconds()
468696508.531

你是对的,fromtimestamp需要自1970/1/1以来的秒数。