【问题标题】:Convert a decimal day of the year to a timestamp将一年中的小数天转换为时间戳
【发布时间】:2015-05-27 18:26:14
【问题描述】:

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

例如,我的第一个小数点是 22.968530853511766,我希望它采用良好的时间戳格式。

【问题讨论】:

  • 那么22.968530853511766 翻译成什么?今年的22号第二天?
  • 所以 1 月 22 日,0.968 -> 晚上 11:58,大概?

标签: python datetime timestamp decimal


【解决方案1】:

使用带有您的值的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() 调用。

【讨论】:

  • 或datetime(datetime.now().year, 1, 1) + timedelta(days)。目前尚不清楚“一年中的小数天”是否基于0。看来我们已经进行过对话了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 1970-01-01
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多