在Python中从float中获取日期时间



如何在Python中从float得到datetime ?

例如,我有一个浮点数,如43111.0,我想得到这个datetime

看起来像Excel日期时间格式,称为串行日期。快速而肮脏的转换方法:

>>> import datetime
>>> serial = 43111.0
>>> seconds = (serial - 25569) * 86400.0
>>> datetime.datetime.utcfromtimestamp(seconds)
datetime.datetime(2018, 1, 11, 0, 0)

试试这个:

from datetime import datetime
datetime.fromtimestamp(*your_timestamp_here*).strftime('%Y-%m-%d')
import datetime, time
print datetime.datetime.fromtimestamp(time.time())
print datetime.datetime.fromtimestamp(43111.0)

所以,用一点数学:

如果43111是2018年1月11日,那么0是1899年12月30日。Python有datetime.date.fromordinal()

返回与预知的格里高利序数相对应的日期,其中第1年的1月1日是序数1。除非1,否则会引发ValueError<= ordinal <= date.max.toordinal()。对于任意日期d,Date.fromordinal (d.toordinal()) == d.

如果你用一个偏移量,你有:

>>> dateoffset = 693594
>>> datetime.date.fromordinal(dateoffset + 43111)
datetime.date(2018, 1, 11)

希望这有助于,即使它不工作的浮动

这是另一种方法

from pyxlsb import convert_date
convert_date(value)

可以使用

format(convert_date(value), '%m/%d/%Y')

相关内容

  • 没有找到相关文章

最新更新