在Python中从float获取日期时间
在Python中,如何从在Python中从float获取日期时间,python,datetime,Python,Datetime,在Python中,如何从float中获取datetime 例如,我有一个浮点数,比如43111.0,我想得到这个浮点数的日期时间 import datetime, time print datetime.datetime.fromtimestamp(time.time()) print datetime.datetime.fromtimestamp(43111.0) 如果43111是2018年1月11日,那么0是1899年12月30日。 Python有 返回与前公历序号对应的日期, 其中,第
float
中获取datetime
例如,我有一个浮点数,比如43111.0,我想得到这个浮点数的
日期时间
import datetime, time
print datetime.datetime.fromtimestamp(time.time())
print datetime.datetime.fromtimestamp(43111.0)
如果43111是2018年1月11日,那么0是1899年12月30日。
Python有
返回与前公历序号对应的日期,
其中,第1年的1月1日具有序号1。除非1,否则将引发ValueError
看起来像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')
这是另一种方法
你可以用
format(convert_date(value), '%m/%d/%Y')
如果您想格式化它。43111.0应该是什么?这是一个奇怪的非标准时间戳吗?43111是2018年1月11日的数字格式。你对此有什么规定吗?@Jacob通常浮点数作为日期是从纪元算起的天。小数点左边的所有内容通常是秒或毫秒。感谢您的回答,但43111.0不是时间戳,它是2018年1月11日的flaot数字格式。在我看来,这并不太脏,因为Excel日期实际上只是一个具有不同起点的时间戳。有两件事需要注意:(1)fromtimestamp()包含时区信息,这可能是可取的,也可能是不可取的(我猜通常是不可取的——请注意结果末尾的2,0)。要解决此问题,请改用utcfromtimestamp()。(2) 此方法无法支持早于1970年的日期。请编辑我的答案以使用utcfromtimestamp():)如果使用序数,则必须单独处理小数部分:(从.xlsb开始,不少于,tyvm
from pyxlsb import convert_date
convert_date(value)
format(convert_date(value), '%m/%d/%Y')