在Python中从float获取datetime

Pra*_*vin 19 python datetime

如何datetimefloatPython中获取a ?

例如,我有一个浮动,如43111.0,我想得到datetime这个.

tuo*_*mur 27

看起来像Excel日期时间格式,称为序列日期.快速而肮脏的转换方式:

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


jer*_*boa 9

import datetime, time

print datetime.datetime.fromtimestamp(time.time())
print datetime.datetime.fromtimestamp(43111.0)
Run Code Online (Sandbox Code Playgroud)


Sag*_*wda 8

试试这个:

from datetime import datetime

datetime.fromtimestamp(*your_timestamp_here*).strftime('%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)


Jac*_*cob 7

所以,用一点点数学:

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

返回对应于公历格里高利序数的日期,其中第1年1月1日有序数1.除非1 <= ordinal <= date.max.toordinal(),否则引发ValueError.对于任何日期d,date.fromordinal(d.toordinal())== d.

如果您使用偏移量,您有:

>>> dateoffset = 693594
>>> datetime.date.fromordinal(dateoffset + 43111)
datetime.date(2018, 1, 11)
Run Code Online (Sandbox Code Playgroud)

希望有所帮助,即使它不适用于花车.