python time()的實(shí)例用法
顧名思義,本期內(nèi)容肯定是涉及編程時(shí)間,那在操作python要怎么用time這個(gè)方法呢?一起來看下吧~
時(shí)間模塊的定義與使用:
時(shí)間模塊time是python自帶的模塊,它內(nèi)部封裝了一些獲取時(shí)間戳和字符串形式時(shí)間的函數(shù)。
導(dǎo)入方法如下:
import time
獲取時(shí)間戳:
tiem.time():獲取當(dāng)前時(shí)間戳。
時(shí)間戳是指從計(jì)算機(jī)元年到現(xiàn)在經(jīng)過的秒數(shù)。
計(jì)算機(jī)元年是指1970年1月1日0時(shí)0分0秒。
另外在python中時(shí)間戳表示為秒數(shù),在java中表示為毫秒數(shù)。
返回值:
浮點(diǎn)數(shù),內(nèi)容是計(jì)算機(jī)元年至今的秒數(shù)。
案例:
print(time.time()) # 獲取當(dāng)前時(shí)間戳
out:
1602407766.34622171234
格式化時(shí)間對(duì)象
time.gmtime():獲取格式化時(shí)間對(duì)象,返回值是當(dāng)前格林尼治時(shí)間。
time.localtime():獲取格式化時(shí)間對(duì)象,返回值是當(dāng)?shù)貢r(shí)間(也就是北京時(shí)間,比格林尼治時(shí)間+8小時(shí))。
參數(shù):
參數(shù)只有一個(gè),類型是浮點(diǎn)數(shù),返回的是計(jì)算機(jī)時(shí)間元年過去多少秒以后的時(shí)間;缺省值是當(dāng)前時(shí)間。
返回值:
這兩個(gè)函數(shù)的返回值除了相差8小時(shí)外都一樣,返回值是格式化時(shí)間對(duì)象。
格式化時(shí)間對(duì)象有9個(gè)屬性,均為int型:
tm_year=2020,表示當(dāng)前是2020年tm_mon=10,表示當(dāng)前是10月tm_mday=10,表示當(dāng)前是10日tm_hour=13,表示當(dāng)前是13時(shí)(注意是格林尼治時(shí)間,加8小時(shí)才是北京時(shí)間)tm_min=50,表示當(dāng)前是50分tm_sec=24,表示當(dāng)前是24秒tm_wday=5,表示當(dāng)前是一周的第6天(周日是0,周一是1,周六是6)tm_yday=284,表示當(dāng)前是一年的第284天tm_isdst=0,表示不是夏令時(shí)(=1表示是夏令時(shí))
案例:
print(time.gmtime()) # 獲取當(dāng)前GMT:格林尼治時(shí)間print(time.localtime()) # 獲取當(dāng)?shù)貢r(shí)間
out:
time.struct_time(tm_year=2020, tm_mon=10, tm_mday=11, tm_hour=9, tm_min=19, tm_sec=8, tm_wday=6, tm_yday=285, tm_isdst=0)time.struct_time(tm_year=2020, tm_mon=10, tm_mday=11, tm_hour=17, tm_min=19, tm_sec=8, tm_wday=6, tm_yday=285, tm_isdst=0)
格式化時(shí)間對(duì)象轉(zhuǎn)換為字符串
time.strftime():格式化時(shí)間對(duì)象轉(zhuǎn)換成字符串。
返回值:
返回值是根據(jù)字符串模板生成的字符串。
案例:
# 把時(shí)間對(duì)象轉(zhuǎn)換成字符串time_str = time.strftime(’%Y年%m月%d日%H時(shí)%M分%S秒’)print(time_str)print(time.strftime(’%Y年%m月%d日%H時(shí)%M分%S秒’, time.gmtime(0)))
out:
2020年10月11日17時(shí)30分24秒1970年01月01日00時(shí)00分00秒
字符串轉(zhuǎn)換為格式化時(shí)間對(duì)象
time.strptime():字符串轉(zhuǎn)換為格式化時(shí)間對(duì)象。注意strptime和strftime是互逆操作,要相互轉(zhuǎn)換必須使用相同的字符串模板。
參數(shù):
和strftime的參數(shù)一樣也是兩個(gè),但位置相反。
返回值:
返回值是根據(jù)字符串模板生成的格式化時(shí)間對(duì)象。
案例:
# 把時(shí)間字符串轉(zhuǎn)換成時(shí)間對(duì)象time_struct = time.strptime(time_str, ’%Y年%m月%d日%H時(shí)%M分%S秒’)print(time_struct)
out:
time.struct_time(tm_year=2020, tm_mon=10, tm_mday=11, tm_hour=17, tm_min=35, tm_sec=52, tm_wday=6, tm_yday=285, tm_isdst=-1)
時(shí)間對(duì)象轉(zhuǎn)換成時(shí)間戳
time.mktime():獲取格式化時(shí)間對(duì)象對(duì)應(yīng)的時(shí)間戳。注意mktime和gmtime、localtime是互逆操作。
參數(shù):
參數(shù)只有一個(gè),是格式化時(shí)間對(duì)象。
返回值:
返回值是時(shí)間戳。
案例:
# 時(shí)間對(duì)象轉(zhuǎn)換為時(shí)間戳time_num = time.mktime(time_struct)print(time_num) # 時(shí)間戳轉(zhuǎn)換為時(shí)間對(duì)象time_struct2 = time.gmtime(time_num)time_struct3 = time.localtime(time_num)print(time_struct2)print(time_struct3)
out:
1602409740.0time.struct_time(tm_year=2020, tm_mon=10, tm_mday=11, tm_hour=9, tm_min=49, tm_sec=0, tm_wday=6, tm_yday=285, tm_isdst=0)time.struct_time(tm_year=2020, tm_mon=10, tm_mday=11, tm_hour=17, tm_min=49, tm_sec=0, tm_wday=6, tm_yday=285, tm_isdst=0)
常用案例:
1、一行代碼對(duì)日期排序:
date_list = [’2020-9-10’, ’2020-9-20’, ’2020-9-15’]date_list2 = sorted(date_list, key=lambda x: time.strptime(x, ’%Y-%m-%d’))print(date_list2)
out:
[’2020-9-10’, ’2020-9-15’, ’2020-9-20’]
2、一行代碼計(jì)算2個(gè)日期相差天數(shù)
date1 = ’2020-9-10’date2 = ’1999-9-9’ print((time.mktime(time.strptime(date1, ’%Y-%m-%d’))-time.mktime(time.strptime(date2, ’%Y-%m-%d’)))/86400)
out:
7672.0
到此這篇關(guān)于python time()的實(shí)例用法的文章就介紹到這了,更多相關(guān)如何使用python time()方法內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
