在平常的代碼中,我們常常需要與時間打交道揩徊。在Python中,與時間處理有關的模塊就包括:time嵌赠,datetime以及calendar塑荒。這篇文章,主要講解time模塊姜挺。
在開始之前齿税,首先要說明這幾點:
在Python中,通常有這幾種方式來表示時間:時間戳?(給機器看的)炊豪、格式化的時間字符串(給人看的) 凌箕、struct_time元組機構(gòu)化時間(計算用的)拧篮。
UTC(Coordinated Universal Time,世界協(xié)調(diào)時)亦即格林威治天文時間牵舱,世界標準時間串绩。在中國為UTC+8。DST(Daylight Saving Time)即夏令時芜壁。
時間戳(timestamp)的方式:通常來說礁凡,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。我們運行“type(time.time())”慧妄,返回的是float類型顷牌。返回時間戳方式的函數(shù)主要有time(),clock()等塞淹。
元組(struct_time)方式:struct_time元組共有9個元素窟蓝,返回struct_time的函數(shù)主要有g(shù)mtime(),localtime()饱普,strptime()运挫。
如果大家在學習中遇到困難,想找一個python學習交流環(huán)境套耕,可以加入我們的python圈谁帕,裙號947618024,可領取python學習資料箍铲,會節(jié)約很多時間雇卷,減少很多遇到的難題。
時間格式(時間戳)
time.time()函數(shù)獲取的是Unix時間戳颠猴。
返回的是一個float類型的數(shù)值关划。
importtimet1 =time.time()print(t1,type(t1))123
睡眠 time.sleep
time.sleep(2)# 睡眠2秒1
格式化時間
importtimeprint(time.strftime('%Y-%m-%d %H:%M:%S'))2019-11-2720:49:36%yprint(time.strftime('%y-%m-%d %H:%M:%S'))19-11-2720:50:27%cprint(time.strftime('%c'))WedNov2720:51:2020191234567891011
格式含義備注%a本地(locale)簡化星期名稱%A本地完整星期名稱%b本地簡化月份名稱%B本地完整月份名稱%c本地相應的日期和時間表示%d一個月中的第幾天(01 - 31)%H一天中的第幾個小時(24小時制,00 - 23)%I第幾個小時(12小時制翘瓮,01 - 12)%j一年中的第幾天(001 - 366)%m月份(01 - 12)%M分鐘數(shù)(00 - 59)%p本地am或者pm的相應符一%S秒(01 - 61)二%U一年中的星期數(shù)贮折。(00 - 53星期天是一個星期的開始。)第一個星期天之前的所有天數(shù)都放在第0周资盅。三%w一個星期中的第幾天(0 - 6调榄,0是星期天)三%W和%U基本相同,不同的是%W以星期一為一個星期的開始呵扛。%x本地相應日期%X本地相應時間%y去掉世紀的年份(00 - 99)%Y完整的年份%Z時區(qū)的名字(如果不存在為空字符)%%‘%’字符
“%p”只有與“%I”配合使用才有效果每庆。
文檔中強調(diào)確實是0 - 61,而不是59今穿,閏年秒占兩秒(汗一個)缤灵。
當使用strptime()函數(shù)時,只有當在這年中的周數(shù)和天數(shù)被確定的時候%U和%W才會被計算。
結(jié)構(gòu)化時間(struct_time)
#結(jié)構(gòu)化時間#localtimestruct_time = time.localtime()print(struct_time)#time.struct_time(tm_year=2020, tm_mon=10, tm_mday=8, tm_hour=15, tm_min=7, tm_sec=53, tm_wday=0, tm_yday=281, tm_isdst=0)print(struct_time.tm_year)#2018#gmtimestruct_time1 = time.gmtime()print(struct_time1)#time.struct_time(tm_year=2020, tm_mon=10, tm_mday=8, tm_hour=15, tm_min=7, tm_sec=53, tm_wday=0, tm_yday=281, tm_isdst=0)print(struct_time1.tm_year)#202012345678910111213
索引(Index)屬性(Attribute)值(Values)0tm_year(年)比如20111tm_mon(月)1 - 122tm_mday(日)1 - 313tm_hour(時)0 - 234tm_min(分)0 - 595tm_sec(秒)0 - 616tm_wday(weekday)0 - 6(0表示周日)7tm_yday(一年中的第幾天)1 - 3668tm_isdst(是否是夏令時)默認為-1
轉(zhuǎn)換
它們之間的轉(zhuǎn)化如圖所示:
要了解更多腮出,請參考time模塊的官方文檔 http://docs.python.org/library/time.html帖鸦。
結(jié)構(gòu)化時間轉(zhuǎn)時間戳mktime
t =time.time()print(t)? ? #1538982828.2859974print(time.localtime(t))? ? #time.struct_time(tm_year=2018, tm_mon=10, tm_mday=8, tm_hour=15, tm_min=13, tm_sec=3, tm_wday=0, tm_yday=281, tm_isdst=0)print(time.gmtime(t))? ? ? #time.struct_time(tm_year=2018, tm_mon=10, tm_mday=8, tm_hour=7, tm_min=13, tm_sec=3, tm_wday=0, tm_yday=281, tm_isdst=0)print(time.mktime(time.localtime()))? ? #1538982958.0123456789
結(jié)構(gòu)化時間轉(zhuǎn)字符串strftime
print(time.strftime('%m/%d/%y %H:%M:%S',time.localtime(3000000000)))#01/24/6513:20:0012
字符串轉(zhuǎn)結(jié)構(gòu)化時間strptime
t =time.time()t =time.strptime('2000-12.31','%Y-%m.%d')print(t)? ? #time.struct_time(tm_year=2000, tm_mon=12, tm_mday=31, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=366, tm_isdst=-1)print(time.strftime('%m/%d/%y %H:%M:%S',time.localtime(3000000000)))? ? #01/24/6513:20:00123456
總結(jié)
asctime([tuple])
將時間元組(默認為本地時間)格式轉(zhuǎn)換為字符串形式。接受一個時間元組胚嘲,其默認值為localtime()返回值
clock()
返回當前程序的cpu執(zhí)行時間作儿。unix系統(tǒng)始終返回全部運行時間;而windows從第二次開始都是以第一次調(diào)用此函數(shù)時的時間戳作為基準馋劈,而不是程序開始時間為基準攻锰。不接受參數(shù)。
ctime(seconds)
將時間戳轉(zhuǎn)換為字符串侣滩。接受一個時間戳口注,其默認值為當前時間戳变擒。等價于asctime(localtime(seconds))
print(time.asctime())? #MonOct8 15:21:022018print(time.asctime(time.localtime()))? #MonOct8 15:21:022018print(time.asctime(time.localtime(2000000000)))? #WedMay18 11:33:202033print(time.ctime())? ? #MonOct8 15:21:022018print(time.ctime(2000000000))? #WedMay18 11:33:20203312345
gmtime([seconds])
將時間戳轉(zhuǎn)換為UTC時間元組格式君珠。接受一個浮點型時間戳參數(shù),其默認值為當前時間戳娇斑。
localtime([seconds])
將時間戳轉(zhuǎn)換為本地時間元組格式策添。接受一個浮點型時間戳參數(shù),其默認值為當前時間戳毫缆。
mktime(tuple)
將本地時間元組轉(zhuǎn)換為時間戳唯竹。接受一個時間元組,必選苦丁。
sleep(seconds)
延遲一個時間段浸颓,接受整型、浮點型旺拉。
time()
返回當前時間戳产上,浮點數(shù)形式。不接受參數(shù)
tzset()
改變本地時區(qū)蛾狗。
strptime(string, format)
將指定格式的時間字符串解析為時間元組晋涣,strftime()的逆向過程。接受字符串沉桌,時間格式2個參數(shù)谢鹊,都是必選。示例:
time.strptime('2015-08-05 22:08:06','%Y-%m-%d %X')time.struct_time(tm_year=2015, tm_mon=8, tm_mday=5, tm_hour=22, tm_min=8, tm_sec=612
strftime(format[, tuple])
將時間元組以指定的格式轉(zhuǎn)換為字符串形式留凭。接受字符串格式化串佃扼、時間元組。時間元組為可選蔼夜,默認為localtime()兼耀。示例:
time.strftime("%Y-%m-%d %X", time.localtime())'2011-05-05 16:37:06'
最后多說一句,想學習Python可聯(lián)系小編挎扰,這里有我自己整理的整套python學習資料和路線翠订,想要這些資料的都可以進q裙947618024領取巢音。
本文章素材來源于網(wǎng)絡,如有侵權(quán)請聯(lián)系刪除尽超。