在Python中从float获取datetime

时间:2011-07-15 11:16:55

标签: python datetime

如何从Python中的datetime获得float

例如,我有一个浮点数,如43111.0,我希望得到datetime

5 个答案:

答案 0 :(得分:25)

看起来像Excel日期时间格式,名为serial date。快速而肮脏的转换方式:

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

答案 1 :(得分:8)

import datetime, time

print datetime.datetime.fromtimestamp(time.time())
print datetime.datetime.fromtimestamp(43111.0)

答案 2 :(得分:7)

所以,用一点点数学:

如果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)

希望这有助于,即使它不适用于花车。

答案 3 :(得分:5)

试试这个:

from datetime import datetime

datetime.fromtimestamp(*your_timestamp_here*).strftime('%Y-%m-%d')

答案 4 :(得分:0)

这是另一种方式

from pyxlsb import convert_date
convert_date(value)

您可以使用

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

如果要格式化它。