将一年中的小数点转换为时间戳 [英] Convert a decimal day of the year to a timestamp

查看:238
本文介绍了将一年中的小数点转换为时间戳的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How can I convert a decimal representation of a day in the year to a timestamp with all the parts, both the full date and the time?

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

For example, my first decimal is 22.968530853511766 and I want it in a nice timestamp format.

推荐答案

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

Use a timedelta() object with your value as the days parameter; add it to midnight December 31st of the previous year:

from datetime import datetime, timedelta

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

Demo:

>>> 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()方法;我依赖演示中 print()调用的默认 str()转换。

A datetime object can be formatted any number of ways with the datetime.strftime() method; I relied on the default str() conversion as called by print() in the demo.

这篇关于将一年中的小数点转换为时间戳的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆