標籤:sleep nes es2017 time() .net apt 時間處理 ptime mtime
參考部落格:http://blog.csdn.net/SeeTheWorld518/article/details/48314501
http://www.jb51.net/article/49325.htm
time模組中常用的函數
| 函數 |
功能 |
| time.time() |
擷取時間戳記 |
| time.localtime() |
擷取時間元祖和將時間戳記轉換為時間元祖 |
| time.gmtime() |
擷取時間元祖和將時間戳記轉換為時間元祖 |
| time.mktime |
將時間元祖轉換為時間戳記 |
| time.strftime() |
擷取格式化時間和將時間元祖轉化為格式化時間 |
| time.sttptime() |
將格式化時間轉化為時間元祖 |
| time.asctime() |
將時間元祖轉化為固定格式 |
| time.ctime() |
將時間戳記轉化為固定格式 |
| time.sleep() |
休息 |
| time.clock() |
|
在我們平常的代碼中,經常需要和時間打交道。
在python中,與時間處理相關的模組有:time、da‘tetime以及calendar。
學會計算時間,對程式的調優非常重要,可以在程式中狂打時間戳記,來判斷程式中那一塊耗時最多,從而找到程式調優的重心。
下面將使用最廣的time模組,其他模組後續有機會陸續講解。
首先有幾點需要說明:
(1)在python中,通常有這幾種方式表示時間:時間戳記、格式化的時間字串以及時間元祖(struct_time共九種元素)。
(2)時間戳記(timestamp):時間戳記表示是從1970年1月1號00:00:00開始按秒計算到現在的位移量。
(3)時間元祖:時間元祖共有九個元素,返回時間元祖的函數主要有gmtime()、localtime()、strptime()。
一、表示時間的三種方式
1.時間戳記
>>> import time>>> time.time()1510666111.4657724 #距離1970年1月1日0點的秒數
2.格式化時間
>>> time.strftime("%Y-%m-%d %H:%M:%S")‘2017-11-14 21:29:32‘
常見格式化的時間字串中參數的含義
| %Y |
完整的年份(4個數字) |
| %m |
月份(1-12) |
| %d |
一個月中的第幾天(1-31) |
| %H |
一天中的第幾個小時(0-23) |
| %M |
分鐘數(0-59) |
| %S |
秒(0-59) |
| %c |
標準的日期的時間串,例:‘Wed Nov 15 00:43:54 2017‘ |
| %C |
年份的後兩位元字 |
| %D |
月/天/年,例:‘11/15/17‘ |
| %H |
24小時制 |
| %I |
12小時制 |
| %F |
年/月/日,例:‘2017-11-15‘ |
| %T |
顯示時分秒,例:‘00:50:00‘ |
| %x |
標準的日期串,例:‘11/15/17‘ |
| %X |
標準的時間串,例:‘00:50:55‘ |
| %a |
星期幾的簡寫,例:‘Wed‘ |
| %A |
星期幾的全稱,例:‘Wednesday‘ |
| %b |
月份的簡寫,例:‘Nov‘ |
| %B |
月份的全稱,例:‘November‘ |
| %V |
每年的第幾周 |
| %u |
每周的第幾天 |
| %U |
第*年的第幾周 |
3.時間元祖
>>> time.localtime() #本地時間time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=21, tm_min=29, tm_sec=46, tm_wday=1, tm_yday=318, tm_isdst=0)>>> time.gmtime() #標準時間,相對倫敦提前8小時time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=13, tm_min=30, tm_sec=30, tm_wday=1, tm_yday=318, tm_isdst=0)
我們稱之為時間元祖,雖然不是元祖,但類似元祖。
#可以按照索引來取值>>> time_tuple[0]2017>>> time_tuple[1]
11
時間元祖中個元素所代表的含義
| tm_year |
年 |
| tm_mon |
月(1-12) |
| tm_mday |
日(1-31) |
| tm_hour |
時(0-23) |
| tim_min |
分(1-59) |
| tm_sec |
秒(0-59) |
| tm_wday |
星期幾(0-6,0表示周日) |
| tm_yday |
一年中的第幾天(1-365) |
| tm_isdst |
是否是夏令時(預設-1) |
二、time模組中常用的函數
在使用該模組中的函數的時候,必須先引入該模組(import time)
1.time.time():返回目前時間時間戳記。
>>> time.time()1510671831.6499062
2.time.localtime():功能有兩個:(1)返回當前的時間元祖;(2)將一個時間戳記轉化為時間元祖。
當沒有傳參數的時候預設調用time.localtime()
>>> time.localtime() #擷取本地時間元祖time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=23, tm_min=5, tm_sec=4, tm_wday=1, tm_yday=318, tm_isdst=0)>>> time.localtime(time.time())#將時間戳記轉化為時間元祖time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=23, tm_min=7, tm_sec=28, tm_wday=1, tm_yday=318, tm_isdst=0)
3.time.gmtime():與time.localtime()功能一樣,返回目前時間元祖和將一個時間戳記轉化為時間元祖。
>>> time.gmtime() #獲得時間元祖time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=15, tm_min=9, tm_sec=12, tm_wday=1, tm_yday=318, tm_isdst=0)>>> time.gmtime(time.time()) #將時間戳記轉化為時間元祖time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=15, tm_min=9, tm_sec=18, tm_wday=1, tm_yday=318, tm_isdst=0)
4.time.mktime():將一個時間元祖轉換為時間戳記。
>>> time_tuple = time.localtime()>>> time.mktime(time_tuple)1510672372.0
5.time.strptime():將一個格式化的時間字串轉化為時間元祖。
>>> time.strptime(‘2017-11-14 16:23:33‘,"%Y-%m-%d %M:%H:%S")time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=23, tm_min=16, tm_sec=33, tm_wday=1, tm_yday=318, tm_isdst=-1)
6.time.strftime():功能有兩個:(1)擷取格式化的時間字串;(2)將時間元祖轉化為格式化時間。
#擷取格式化時間>>> time.strftime("%Y-%m-%d %M:%H:%S")‘2017-11-14 16:23:33‘#將時間元祖轉化為格式化時間>>> time_tupletime.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=23, tm_min=12, tm_sec=52, tm_wday=1, tm_yday=318, tm_isdst=0)>>> time.strftime(‘%Y-%m-%d %M:%H:%S‘,time_tuple) #時間格式在前‘2017-11-14 12:23:52‘
7.time.asctime():將一個表示時間的元祖或者struct_time表示為‘Tue Nov 14 23:12:52 2017‘這種形式,如果沒有傳參數,預設以time.localtime()作為參數。
#將時間元祖表示成固定的形式>>> time_tupletime.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=23, tm_min=12, tm_sec=52, tm_wday=1, tm_yday=318, tm_isdst=0)>>> time.asctime(time_tuple)‘Tue Nov 14 23:12:52 2017‘#如果沒有指定參數,預設以time.localtime()作為參數>>> time.asctime()‘Tue Nov 14 23:27:59 2017‘
8.time.ctime():將一個時間戳記轉換為‘Tue Nov 14 23:32:58 2017‘這種形式,如果沒有指定參數,預設以time.local()作為參數
#轉換時間戳記>>> time.ctime(1000000000)‘Sun Sep 9 09:46:40 2001‘#預設情況>>> time.ctime()‘Tue Nov 14 23:32:58 2017‘
9.time.sleep():線程延遲指定的時間運行。預設單位為秒。
>>> time.sleep(10)
10.time.clock()
python常用模組——time模組