比如从源头数据可以获得2个时间,其形式为"2017-03-09 08:51:51 615""2017-03-09 08:52:21 601"要计算前后者的时间差
自己百度搜索了很多相关内容,都无法解决这个问题,datetime不知道如何转换毫秒,timedelta无法转换年份因为业务的精度要求,不能省略后面的毫秒,要计算两者的时间差。当然基本上都是同一天,但考虑到业务是24小时进行的,也不能忽略前面的日期,万一问题正好发生在0点前后呢
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
datetime可以转换毫秒的啊,精度都达到微秒了。或者说我没理解清楚问题?比如可以使用格式符%f,如下圖:
datetime
%f
>>> t1 = "2017-03-09 08:51:51 615" >>> t2 = "2017-03-09 08:52:21 601" >>> from datetime import datetime >>> a = datetime.strptime(t1, "%Y-%m-%d %H:%M:%S %f") >>> b = datetime.strptime(t2, "%Y-%m-%d %H:%M:%S %f") >>> c = b - a >>> c datetime.timedelta(0, 29, 986000) >>> c.microseconds 986000
這裡c中第三個是微秒。
c
2017-03-09 08:51:51轉成時間戳然後字串連接"615",就是毫秒精度的時間戳了、兩個時間戳數值還算不出來嗎?
2017-03-09 08:51:51
時間戳是以秒為單位,所以乘以1000就是毫秒,微秒除以1000也是毫秒
# coding: utf-8 from datetime import datetime import time format = '%Y-%m-%d %H:%M:%S %f' a = datetime.strptime("2017-03-09 08:51:51 615", format) b = datetime.strptime("2017-03-09 08:52:21 601", format) t1 = time.mktime(a.timetuple()) * 1000 + a.microsecond / 1000 t2 = time.mktime(b.timetuple()) * 1000 + b.microsecond / 1000 print t2 - t1
datetime
可以转换毫秒的啊,精度都达到微秒了。或者说我没理解清楚问题?比如可以使用格式符%f
,如下圖:這裡
c
中第三個是微秒。2017-03-09 08:51:51
轉成時間戳然後字串連接"615",就是毫秒精度的時間戳了、兩個時間戳數值還算不出來嗎?時間戳是以秒為單位,所以乘以1000就是毫秒,微秒除以1000也是毫秒