python模塊之time
time:官方文檔是最好的模塊表達(dá)說(shuō)明。
通常處理日期和時(shí)間的方式在于時(shí)間戳和字符串式時(shí)間轉(zhuǎn)換站绪,python里面又加入了結(jié)構(gòu)化時(shí)間元組的方式丽柿,即存在時(shí)間戳甫题、字符串時(shí)間戳和時(shí)間元組三種方式之間的轉(zhuǎn)換。
1坠非、基礎(chǔ)
python中時(shí)間日期格式化符號(hào):
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡(jiǎn)化星期名稱
%A 本地完整星期名稱
%b 本地簡(jiǎn)化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時(shí)間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價(jià)符
%U 一年中的星期數(shù)(00-53)星期天為星期的開(kāi)始
%w 星期(0-6)炎码,星期天為星期的開(kāi)始
%W 一年中的星期數(shù)(00-53)星期一為星期的開(kāi)始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時(shí)間表示
%Z 當(dāng)前時(shí)區(qū)的名稱
%% %號(hào)本身
時(shí)間元組:python函數(shù)用一個(gè)元組裝起來(lái)的9組數(shù)字處理時(shí)間潦闲。
struct_time(tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)
index | attr | name | value |
---|---|---|---|
0 | tm_year | 年 | 2008 |
1 | tm_mon | 月 | 1-12 |
2 | tm_mday | 日 | 1-31 |
3 | tm_hour | 時(shí) | 0-23 |
4 | tm_min | 分 | 0-59 |
5 | tm_sec | 秒 | 0-61 |
6 | tm_wday | 周日 | 0-6 |
7 | tm_yday | 年日 | 1-366 |
8 | tm_isdst | 夏令時(shí) | 0 1 -1 |
- 秒60矫钓、61是閏秒。
- 周日:0是周一新娜。
- 年日是儒略歷概龄。
- 夏令時(shí):1(夏令時(shí))、0(不是夏令時(shí))私杜、-1(未知)衰粹,默認(rèn) -1 。
2铝耻、time
時(shí)間操作的3中方式:
- 時(shí)間戳:1970年1月1日之后的秒瓢捉,time.time()
- 格式化的字符串:2017-11-08 13:13 , time.strftime('%Y-%m-%d')
- 結(jié)構(gòu)化時(shí)間元組:元組形式見(jiàn)上面基礎(chǔ),time.struct_time()
1搂漠、時(shí)間戳
time.time():返回當(dāng)前時(shí)間的時(shí)間戳(1970紀(jì)元后經(jīng)過(guò)的浮點(diǎn)秒數(shù))某弦。
>>> time.time()
1510119901.2839558
>>> int(time.time())
1510119949
2、結(jié)構(gòu)化時(shí)間元組
time.localtime([secs]):接收時(shí)間輟(1970紀(jì)元后經(jīng)過(guò)的浮點(diǎn)秒數(shù))并返回當(dāng)?shù)貢r(shí)間下的時(shí)間元組t(t.tm_isdst可取0或1惊科,取決于當(dāng)?shù)禺?dāng)時(shí)是不是夏令時(shí))亮钦。
>>> t=time.localtime(time.time())
>>> print(t)
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=8, tm_hour=14, tm_min=0, tm_sec=49, tm_wday=2, tm_yday=312, tm_isdst=0)
>>> t[0]
2017
time.gmtime([secs]):接收時(shí)間輟(1970紀(jì)元后經(jīng)過(guò)的浮點(diǎn)秒數(shù))并返回格林威治天文時(shí)間下的時(shí)間元組t蜂莉。注:t.tm_isdst始終為0。
>>> t=time.gmtime(time.time())
>>> print(t)
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=8, tm_hour=6, tm_min=6, tm_sec=0, tm_wday=2, tm_yday=312, tm_isdst=0)
time.mktime(tupletime):接受時(shí)間元組并返回時(shí)間輟映穗。
>>> time.mktime((2017, 11, 8, 14, 0, 49, 2, 312, 0))
1510120849.0
3蚁滋、結(jié)構(gòu)化時(shí)間字符串
time.strftime(fmt[,tupletime]):接收時(shí)間元組赘淮,并返回可讀字符串表示的當(dāng)?shù)貢r(shí)間睦霎,格式由fmt指定。
>>> print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
2017-11-08 14:10:42
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y'):把fmt指定的時(shí)間字符串解析為時(shí)間元組蛤高。
>>> time.strptime('2017-11-08 14:10:42', '%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=8, tm_hour=14, tm_min=10, tm_sec=42, tm_wday=2, tm_yday=312, tm_isdst=-1)
time.asctime([tupletime]):接收時(shí)間元組并返回一個(gè)可讀形式為'Wed Nov 8 14:14:32 2017'(2017年11月8日 周三14時(shí)14分32秒)的24個(gè)字符的字符串戴陡。
>>> time.asctime(time.localtime())
'Wed Nov 8 14:14:32 2017'
time.ctime([secs]):作用相當(dāng)time.asctime([tupletime])沟涨,接收時(shí)間戳。
>>> time.ctime()
'Wed Nov 8 14:15:46 2017'
>>> time.ctime(time.time())
'Wed Nov 8 14:16:40 2017'
time.sleep(secs):推遲調(diào)用線程的運(yùn)行开皿,讓線程睡一會(huì)篮昧,secs指秒數(shù)。(手速問(wèn)題窄潭,命令行執(zhí)行的)
>>> print('start %s' % time.time())
start 1510122104.372965
>>> time.sleep(5)
>>> print('end %s' % time.time())
end 1510122117.780732
time.clock():用以浮點(diǎn)數(shù)計(jì)算的秒數(shù)返回當(dāng)前的CPU時(shí)間酵颁。用來(lái)衡量不同程序的耗時(shí),比time.time()更有用幽污。
>>> time.clock()
2.4444447548501278e-06
以上只包含通巢疽蹋可能會(huì)用到的函數(shù),更多見(jiàn)頭部鏈接官網(wǎng)准潭。

另外常用的日期時(shí)間模塊有datetime和calendar域仇,有興趣的可以直接去其腳本文件進(jìn)行查看。
這兩個(gè)模塊同樣可以在官網(wǎng)找到泼掠,將不做贅述。