Python 要浮动的日期时间不包括毫秒
下面的代码没有将毫秒转换为浮点。正确的方法是什么Python 要浮动的日期时间不包括毫秒,python,datetime,Python,Datetime,下面的代码没有将毫秒转换为浮点。正确的方法是什么 import datetime def date2float(datestr): format = "%Y-%m-%d %H:%M:%S.%f" dateobj = datetime.datetime.strptime(datestr, format) print dateobj dtfloat = mktime(dateobj.timetuple()) print dtfloat return
import datetime
def date2float(datestr):
format = "%Y-%m-%d %H:%M:%S.%f"
dateobj = datetime.datetime.strptime(datestr, format)
print dateobj
dtfloat = mktime(dateobj.timetuple())
print dtfloat
return dtfloat
date2float("2015-03-08 10:34:01.2")
date2float("2015-03-08 10:34:01.4")
电流输出为:
2015-03-08 10:34:01.200000
1425828841.0
2015-03-08 10:34:01.400000
1425828841.0
显然,0.2和0.4已丢失。mktime不处理小数秒。您可以手动添加微秒:
def date2float(datestr):
format = "%Y-%m-%d %H:%M:%S.%f"
dateobj = datetime.datetime.strptime(datestr, format)
dtfloat = mktime(dateobj.timetuple())
dtfloat += dateobj.microsecond / 1000000.0
return dtfloat
在Python 3.3+中:
>>> import datetime
>>> datetime.datetime.now().timestamp()
1425826728.740325
mktime()
(以及内部使用它的timestamp()
)在DST转换期间以及过去/将来的日期可能会失败,如果您的本地时区在不同的时间可能有不同的utc偏移量(许多时区都有)。使用与本地时区相对应的显式pytz
时区来避免问题。输入时区是什么?它应该是默认时区,但在我的情况下,我不关心它。如果你不关心使用错误时区时的错误,为什么要关心毫秒?