Python計時相關(guān)操作詳解【time,datetime】
本文實例講述了Python計時相關(guān)操作。分享給大家供大家參考,具體如下:
內(nèi)容目錄:
1. 時間戳
2. 當(dāng)前時間
3. 時間差
4. python中時間日期格式化符號
5. 例子
一、時間戳
時間戳是自 1970 年 1 月 1 日(08:00:00 GMT)至當(dāng)前時間的總秒數(shù)。它也被稱為 Unix 時間戳(Unix Timestamp),它在unix、c的世界里隨處可見;常見形態(tài)是浮點數(shù),小數(shù)點后面是毫秒。兩個時間戳相減就是時間間隔(單位:秒)。
例:
import time time1 = time.time() time.sleep(15) time2 = time.time() print time2 - time1
其中,time.sleep()是休眠函數(shù),單位:秒。
二、當(dāng)前時間
>>> import datetime,time >>> now = time.strftime("%Y-%m-%d %H:%M:%S") >>> print now 2016-04-30 17:02:26 >>> now = datetime.datetime.now() >>> print now
三、時間差
#1 昨天00:00到昨天23:59
>>> import datetime >>> yestoday = datetime.datetime.now() - datetime.timedelta(days=1) >>> t1 = "%s-00-00-00" % yestoday.strftime("%Y-%m-%d") >>> t2 = "%s-23-59-59" % yestoday.strftime("%Y-%m-%d") >>> print 't1', t1 t1 2016-04-29-00-00-00 >>> print 't2', t2 t2 2016-04-29-23-59-59
#2 現(xiàn)在往后10小時
>>> d1 = datetime.datetime.now() >>> d3 = d1 + datetime.timedelta(hours=10) >>> d3.ctime() 'Sun May 1 03:09:58 2
#3 這么一會的秒數(shù)、微妙數(shù)(注意是取秒、微妙部分,并不是等價轉(zhuǎn)換)
>>> import datetime >>> starttime = datetime.datetime.now() >>> endtime = datetime.datetime.now() >>> starttime = datetime.datetime.now() >>> endtime = datetime.datetime.now() >>> print endtime - starttime 0:00:07.390988 >>> print (endtime - starttime).seconds 7 >>> print (endtime - starttime).microseconds 390988
文件的時間戳
>>> import os >>> statinfo=os.stat(r"C:/1.txt") >>> statinfo (33206, 0L, 0, 0, 0, 0, 29L, 1201865413, 1201867904, 1201865413)
注:使用os.stat的返回值statinfo中的后三項是文件的st_atime (訪問時間), st_mtime (修改時間), st_ctime(創(chuàng)建時間),例如,取得文件修改時間:
>>> statinfo.st_mtime 1201865413.8952832
注:這個時間是一個linux時間戳,可以轉(zhuǎn)換成易于理解的格式:
>>> import time >>> time.localtime(statinfo.st_ctime) (2008, 2, 1, 19, 30, 13, 4, 32, 0)
注:2008年2月1日的19時30分13秒(2008-2-1 19:30:13)
四、python中時間日期格式化符號
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時制小時數(shù)(0-23)
%I 12小時制小時數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時間表示
%Z 當(dāng)前時區(qū)的名稱
%% %號本身
五、例子
#! coding:utf-8 ''''' 日期相關(guān)的操作 ''' from datetime import datetime from datetime import timedelta import calendar DATE_FMT = '%Y-%m-%d' DATETIME_FMT = '%Y-%m-%d %H:%M:%S' DATE_US_FMT = '%d/%m/%Y' ''''' 格式化常用的幾個參數(shù) Y : 1999 y :99 m : mouth 02 12 M : minute 00-59 S : second d : day H : hour ''' def dateToStr(date): '''''把datetime類型的時間格式化自己想要的格式''' return datetime.strftime(date, DATETIME_FMT) def strToDate(strdate): '''''把str變成日期用來做一些操作''' return datetime.strptime(strdate, DATETIME_FMT) def timeElement(): '''''獲取一個時間對象的各個元素''' now = datetime.today() print 'year: %s month: %s day: %s' %(now.year, now.month, now.day) print 'hour: %s minute: %s second: %s' %(now.hour, now.minute, now.second) print 'weekday: %s ' %(now.weekday()+1) #一周是從0開始的 def timeAdd(): ''''' 時間的加減,前一天后一天等操作 datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]]) 參數(shù)可以是正數(shù)也可以是負數(shù) 得到的對象可以加也可以減 乘以數(shù)字和求絕對值 ''' atime = timedelta(days=-1) now = datetime.strptime('2001-01-30 11:01:02', DATETIME_FMT) print now + atime print now - abs(atime) print now - abs(atime)*31 def lastFirday(): today = datetime.today() targetDay = calendar.FRIDAY thisDay = today.weekday() de = (thisDay - targetDay) % 7 res = today - timedelta(days=de) print res def test(): print dateToStr(datetime.today()) print strToDate('2013-01-31 12:00:01') timeElement() timeAdd() lastFirday() if __name__=='__main__': test()
結(jié)果
Connected to pydev debugger (build 141.1899) 2016-05-18 10:40:26 2013-01-31 12:00:01 year: 2016 month: 5 day: 18 hour: 10 minute: 41 second: 13 weekday: 3 2001-01-29 11:01:02 2001-01-29 11:01:02 2000-12-30 11:01:02 2016-05-13 10:41:37.001000
PS:本站還提供了幾款關(guān)于Unix時間戳轉(zhuǎn)換及日期在線工具,非常實用,提供給大家參考:
Unix時間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime
在線日期/天數(shù)計算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線萬年歷日歷:
http://tools.jb51.net/bianmin/wannianli
在線陰歷/陽歷轉(zhuǎn)換工具:
http://tools.jb51.net/bianmin/yinli2yangli
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日期與時間操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
簡單實現(xiàn)Python爬取網(wǎng)絡(luò)圖片
這篇文章主要教大家如何簡單實現(xiàn)Python爬取網(wǎng)絡(luò)圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04python實現(xiàn)圖片,視頻人臉識別(dlib版)
這篇文章主要介紹了python實現(xiàn)圖像,視頻人臉識別(dlib版)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11Python內(nèi)置函數(shù)map()的具體使用
Python中的map()函數(shù)是一個高效的內(nèi)置函數(shù),用于將指定函數(shù)應(yīng)用于序列的每個元素,通過接收一個函數(shù)和一個或多個序列,本文就來詳細的介紹一下如何使用,感興趣的可以了解一下2024-09-09Python實現(xiàn)將目錄中TXT合并成一個大TXT文件的方法
這篇文章主要介紹了Python實現(xiàn)將目錄中TXT合并成一個大TXT文件的方法,涉及Python針對目錄下文本文件的遍歷、讀取及寫入等技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07