算法 - 如何使用python計(jì)算2個(gè)毫秒級(jí)字符串的計(jì)算
問題描述
比如從源頭數(shù)據(jù)可以獲得2個(gè)時(shí)間,其形式為'2017-03-09 08:51:51 615''2017-03-09 08:52:21 601'要計(jì)算前后者的時(shí)間差
自己百度搜索了很多相關(guān)內(nèi)容,都無法解決這個(gè)問題,datetime不知道如何轉(zhuǎn)換毫秒,timedelta無法轉(zhuǎn)換年份因?yàn)闃I(yè)務(wù)的精度要求,不能省略后面的毫秒,要計(jì)算兩者的時(shí)間差。當(dāng)然基本上都是同一天,但考慮到業(yè)務(wù)是24小時(shí)進(jìn)行的,也不能忽略前面的日期,萬一問題正好發(fā)生在0點(diǎn)前后呢
問題解答
回答1:datetime可以轉(zhuǎn)換毫秒的啊,精度都達(dá)到微秒了?;蛘哒f我沒理解清楚問題?比如可以使用格式符%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中第三個(gè)是微秒。
回答2:2017-03-09 08:51:51轉(zhuǎn)成時(shí)間戳然后字符串連接'615',就是毫秒精度的時(shí)間戳了、兩個(gè)時(shí)間戳數(shù)值還算不出來嗎?
回答3:時(shí)間戳是以秒為單位,所以乘以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
相關(guān)文章:
1. docker api 開發(fā)的端口怎么獲?。?/a>2. docker - 如何修改運(yùn)行中容器的配置3. docker start -a dockername 老是卡住,什么情況?4. macos - mac下docker如何設(shè)置代理5. docker鏡像push報(bào)錯(cuò)6. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下7. debian - docker依賴的aufs-tools源碼哪里可以找到?。?/a>8. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?9. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。10. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????

網(wǎng)公網(wǎng)安備