将年份的十进制日转换为时间戳

时间:2015-05-27 18:26:14

标签: python datetime timestamp decimal

如何将一年中某一天的十进制表示转换为包含所有部分的时间戳,包括完整日期和时间?

例如,我的第一个小数是22.968530853511766,我希望它以一种漂亮的时间戳格式。

1 个答案:

答案 0 :(得分:10)

使用timedelta() object将您的值作为days参数;将它添加到上一年的12月31日午夜:

from datetime import datetime, timedelta

epoch = datetime(datetime.now().year - 1, 12, 31)
result = epoch + timedelta(days=your_decimal)

演示:

>>> from datetime import datetime, timedelta
>>> epoch = datetime(datetime.now().year - 1, 12, 31)
>>> epoch + timedelta(days=22.968530853511766)
datetime.datetime(2015, 1, 22, 23, 14, 41, 65743)
>>> print(epoch + timedelta(days=22.968530853511766))
2015-01-22 23:14:41.065743

datetime对象可以使用datetime.strftime() method以任意多种方式格式化;我依赖于演示中str()调用的默认print()转换。