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

Meg*_*ell -1 python datetime timestamp decimal

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

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

Mar*_*ers 10

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

from datetime import datetime, timedelta

epoch = datetime(datetime.now().year - 1, 12, 31)
result = epoch + timedelta(days=your_decimal)
Run Code Online (Sandbox Code Playgroud)

演示:

>>> 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
Run Code Online (Sandbox Code Playgroud)

datetime对象可以被格式化的任何数量的与所述方式datetime.strftime()方法 ; 我依赖于演示中str()调用的默认转换print().