如何从Python中的datetime
获得float
?
例如,我有一个浮点数,如43111.0,我希望得到datetime
。
答案 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')
如果要格式化它。