算法 - 如何使用python計算2個毫秒級字符串的計算
問題描述
比如從源頭數(shù)據(jù)可以獲得2個時間,其形式為'2017-03-09 08:51:51 615''2017-03-09 08:52:21 601'要計算前后者的時間差
自己百度搜索了很多相關(guān)內(nèi)容,都無法解決這個問題,datetime不知道如何轉(zhuǎn)換毫秒,timedelta無法轉(zhuǎn)換年份因為業(yè)務的精度要求,不能省略后面的毫秒,要計算兩者的時間差。當然基本上都是同一天,但考慮到業(yè)務是24小時進行的,也不能忽略前面的日期,萬一問題正好發(fā)生在0點前后呢
問題解答
回答1:datetime可以轉(zhuǎn)換毫秒的啊,精度都達到微秒了。或者說我沒理解清楚問題?比如可以使用格式符%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轉(zhuǎn)成時間戳然后字符串連接'615',就是毫秒精度的時間戳了、兩個時間戳數(shù)值還算不出來嗎?
回答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
相關(guān)文章:
1. node.js - mysql如何通過knex查詢今天和七天內(nèi)的匯總數(shù)據(jù)2. mysql 插入數(shù)值到特定的列一直失敗3. 360瀏覽器與IE瀏覽器有何區(qū)別???4. Python從URL中提取域名5. mysql - 百萬行的表中是否盡量避免使用update等sql語句?6. python - 在使用Pycharm時經(jīng)常看到如下的樣式,小括號里紅色的部分是什么意思呢?7. javascript - 新浪微博網(wǎng)頁版的字數(shù)限制是怎么做的8. 怎么在網(wǎng)頁中設置圖片進行左右滑動9. javascript - 豆瓣的這個自適應是怎么做的?10. javascript - 用jsonp抓取qq音樂總是說回調(diào)函數(shù)沒有定義
