时间元组到日期时间

时间:2013-05-07 08:41:10

标签: python datetime

我正在尝试将时间戳元组从dpkt转换为日期时间实例。

时间戳看起来像(seconds, microseconds)。这就是我目前正在做的事情,但这似乎有点过分了:

from datetime import datetime as dt
ts = (1296770576, 247792)

ts_list = [str(item) for item in ts]
ts_list[1] = ts_list[1].zfill(6) #make sure we have 6 digits
ts_str = ".".join(ts_list)
ts_float = float(ts_str)
ts_dt = dt.fromtimestamp(ts_float)

有更简单的方法吗?

1 个答案:

答案 0 :(得分:3)

只需使用秒部分,然后使用.replace() method更新带有微秒部分的datetime对象:

dt.fromtimestamp(ts[0]).replace(microsecond=ts[1])

演示:

>>> from datetime import datetime as dt
>>> ts = (1296770576, 247792)
>>> dt.fromtimestamp(ts[0]).replace(microsecond=ts[1])
datetime.datetime(2011, 2, 3, 23, 2, 56, 247792)

如果您曾经将(seconds, microseconds)元组转换为浮点时间戳,只需使用浮点除法:

>>> ts_float = float(ts[0]) + float(ts[1]) / 1000000
>>> dt.fromtimestamp(ts_float)
datetime.datetime(2011, 2, 3, 23, 2, 56, 247792)