算法 - 如何使用python计算2个毫秒级字符串的计算
问题描述
比如从源头数据可以获得2个时间,其形式为'2017-03-09 08:51:51 615''2017-03-09 08:52:21 601'要计算前后者的时间差
自己百度搜索了很多相关内容,都无法解决这个问题,datetime不知道如何转换毫秒,timedelta无法转换年份因为业务的精度要求,不能省略后面的毫秒,要计算两者的时间差。当然基本上都是同一天,但考虑到业务是24小时进行的,也不能忽略前面的日期,万一问题正好发生在0点前后呢
问题解答
回答1: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>>> cdatetime.timedelta(0, 29, 986000)>>> c.microseconds986000
这里c中第三个是微秒。
回答2:2017-03-09 08:51:51转成时间戳然后字符串连接'615',就是毫秒精度的时间戳了、两个时间戳数值还算不出来吗?
回答3:时间戳是以秒为单位,所以乘以1000就是毫秒,微秒除以1000也是毫秒
# coding: utf-8from datetime import datetimeimport timeformat = ’%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 / 1000t2 = time.mktime(b.timetuple()) * 1000 + b.microsecond / 1000print t2 - t1
相关文章:
1. PHP能实现百度网盘的自动化么?2. android - 使用vue.js进行原生开发如何进行Class绑定3. 网页爬虫 - python requests爬虫,如何post payload4. node.js - 微信的自动回复问题5. node.js - vue服务端渲染如何部署到线上6. css3 - 请问一下在移动端CSS布局布局中通常需要用到哪些元素,属性?7. javascript - 百度图片切换图片时url会改变,但无刷新,没用hash,IE8也支持,请问是用了什么技术?8. MySQL 水平拆分之后,自动增长的ID有什么好的解决办法?9. angular.js - 各位大神们,你们混合开发,web方式中更推荐用什么框架呀? react?vue?angular?谢谢~10. mysql如何添加索引的时候指定索引方式
