import time
1、方法彙總:
- time.sleep():定時函數
- time.time(): 時間戳/牆上時間
- time.clock():CPU時間
- time.local() / gmtime(): 把時間戳轉換成時間元組結構(gmtime差localtime八個小時)
- time.mktime(): 把時間元組轉換成時間戳
- time.strftime():把時間元組轉換爲完成時間字符串格式
- time.strptime():與strftime的用途相反
timestamp(時間戳):指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至如今的總秒數函數
struct_time(時間元組):能夠使用localtime和gmtime將時間戳轉換爲時間元組,注意:localtime和structtime用法類似,但gmtime()方法是將一個時間戳轉換爲UTC時區(0時區)的struct_time工具
format_string(字符串格式):能夠將時間元組轉換成時間字符串格式post
2、類型轉換和實戰
一、time.time()和time.clock()的區別:spa
time.time()是統計的wall time(即牆上時鐘),也就是系統時鐘的時間戳(1970紀元後通過的浮點秒數)。因此兩次調用的時間差即爲系統通過的總時間。
time.clock()是統計cpu時間的工具,這在統計某一程序或函數的執行速度最爲合適。兩次調用time.clock()函數的差值即爲程序運行的cpu時間。code
import time def procedure(): a = 0 for i in range(10000): a += 1 t0 = time.time() t_0 = time.clock() procedure() time.sleep(2) t1 = time.time() t_1 = time.clock() print('wall time is %f'%(t1-t0)) print('CPU time is %f'%(t_1-t_0))
打印結果:orm
wall time is 2.000038 CPU time is 1.999886
二、各種型轉換
import time # 獲取時間戳 timestamp = time.time() print(timestamp) # localtime和gmtime用法類似,將時間戳轉換成時間元組。 # 注意:gmtime()方法是將一個時間戳轉換爲UTC時區(0時區)的struct_time。 # localtime與gmtime相差8個小時(localtime比gmtime多8小時) localtime = time.localtime(timestamp) print(localtime) gmtime = time.gmtime(timestamp) print(gmtime) # 將時間元組轉換成時間戳 mktime = time.mktime(localtime) print(mktime) # 將時間元組轉換成時間字符格式('Wed Mar 27 10:58:39 201') asctime_1 = time.asctime(localtime) asctime_2 = time.asctime(gmtime) print(asctime_1) print(asctime_2) # 將時間戳直接變成時間字符格式(和local一致) ctime = time.ctime(timestamp) print(ctime) # 將時間元組轉換成指定時間字符格式 strftime = time.strftime('%Y-%m-%d %X',localtime) print(strftime) strptime = time.strptime(strftime,'%Y-%m-%d %X') print(strptime)
打印結果:blog
1553659424.696932 time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=12, tm_min=3, tm_sec=44, tm_wday=2, tm_yday=86, tm_isdst=0) time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=4, tm_min=3, tm_sec=44, tm_wday=2, tm_yday=86, tm_isdst=0) 1553659424.0 Wed Mar 27 12:03:44 2019 Wed Mar 27 04:03:44 2019 Wed Mar 27 12:03:44 2019 2019-03-27 12:03:44 time.struct_time(tm_year=2019, tm_mon=3, tm_mday=27, tm_hour=12, tm_min=3, tm_sec=44, tm_wday=2, tm_yday=86, tm_isdst=-1)
格式 | 含義 | 備註 |
---|---|---|
%a | 本地(locale)簡化星期名稱 | |
%A | 本地完整星期名稱 | |
%b | 本地簡化月份名稱 | |
%B | 本地完整月份名稱 | |
%c | 本地相應的日期和時間表示 | |
%d | 一個月中的第幾天(01 - 31) | |
%H | 一天中的第幾個小時(24小時制,00 - 23) | |
%I | 第幾個小時(12小時制,01 - 12) | |
%j | 一年中的第幾天(001 - 366) | |
%m | 月份(01 - 12) | |
%M | 分鐘數(00 - 59) | |
%p | 本地am或者pm的相應符 | 一 |
%S | 秒(01 - 61) | 二 |
%U | 一年中的星期數。(00 - 53星期天是一個星期的開始。)第一個星期天以前的全部天數都放在第0周。 | 三 |
%w | 一個星期中的第幾天(0 - 6,0是星期天) | 三 |
%W | 和%U基本相同,不一樣的是%W以星期一爲一個星期的開始。 | |
%x | 本地相應日期 | |
%X | 本地相應時間 | |
%y | 去掉世紀的年份(00 - 99) | |
%Y | 完整的年份 | |
%Z | 時區的名字(若是不存在爲空字符) | |
%% | '%'字符 |
三、實際例子
# 獲取當前時間和日期 now = time.strftime('%Y-%m-%d %X',time.localtime()) print(now)
打印結果:字符串
2019-03-27 12:13:45
end~string