顧名思義,本期內(nèi)容肯定是涉及編程時間,那在操作python要怎么用time這個方法呢?一起來看下吧~
時間模塊的定義與使用:
時間模塊time是python自帶的模塊,它內(nèi)部封裝了一些獲取時間戳和字符串形式時間的函數(shù)。
導(dǎo)入方法如下:
1.import time
獲取時間戳:
tiem.time():獲取當(dāng)前時間戳。
時間戳是指從計算機(jī)元年到現(xiàn)在經(jīng)過的秒數(shù)。
計算機(jī)元年是指1970年1月1日0時0分0秒。
另外在python中時間戳表示為秒數(shù),在java中表示為毫秒數(shù)。
返回值:
浮點(diǎn)數(shù),內(nèi)容是計算機(jī)元年至今的秒數(shù)。
案例:
1.print(time.time()) # 獲取當(dāng)前時間戳
out:
1.1602407766.3462217
2.1234
格式化時間對象
time.gmtime():獲取格式化時間對象,返回值是當(dāng)前格林尼治時間。
time.localtime():獲取格式化時間對象,返回值是當(dāng)?shù)貢r間(也就是北京時間,比格林尼治時間+8小時)。
參數(shù):
參數(shù)只有一個,類型是浮點(diǎn)數(shù),返回的是計算機(jī)時間元年過去多少秒以后的時間;缺省值是當(dāng)前時間。
返回值:
這兩個函數(shù)的返回值除了相差8小時外都一樣,返回值是格式化時間對象。
格式化時間對象有9個屬性,均為int型:
1.tm_year=2020,表示當(dāng)前是2020年
2.tm_mon=10,表示當(dāng)前是10月
3.tm_mday=10,表示當(dāng)前是10日
4.tm_hour=13,表示當(dāng)前是13時(注意是格林尼治時間,加8小時才是北京時間)
5.tm_min=50,表示當(dāng)前是50分
6.tm_sec=24,表示當(dāng)前是24秒
7.tm_wday=5,表示當(dāng)前是一周的第6天(周日是0,周一是1,周六是6)
8.tm_yday=284,表示當(dāng)前是一年的第284天
9.tm_isdst=0,表示不是夏令時(=1表示是夏令時)
案例:
1.print(time.gmtime()) # 獲取當(dāng)前GMT:格林尼治時間
2.print(time.localtime()) # 獲取當(dāng)?shù)貢r間
out:
1.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)
2.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)
格式化時間對象轉(zhuǎn)換為字符串
time.strftime():格式化時間對象轉(zhuǎn)換成字符串。
返回值:
返回值是根據(jù)字符串模板生成的字符串。
案例:
1.# 把時間對象轉(zhuǎn)換成字符串
2.time_str = time.strftime('%Y年%m月%d日%H時%M分%S秒')
3.print(time_str)
4.print(time.strftime('%Y年%m月%d日%H時%M分%S秒', time.gmtime(0)))
out:
1.2020年10月11日17時30分24秒
2.1970年01月01日00時00分00秒
字符串轉(zhuǎn)換為格式化時間對象
time.strptime():字符串轉(zhuǎn)換為格式化時間對象。注意strptime和strftime是互逆操作,要相互轉(zhuǎn)換必須使用相同的字符串模板。
參數(shù):
和strftime的參數(shù)一樣也是兩個,但位置相反。
返回值:
返回值是根據(jù)字符串模板生成的格式化時間對象。
案例:
1.# 把時間字符串轉(zhuǎn)換成時間對象
2.time_struct = time.strptime(time_str, '%Y年%m月%d日%H時%M分%S秒')
3.print(time_struct)
out:
1.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)
時間對象轉(zhuǎn)換成時間戳
time.mktime():獲取格式化時間對象對應(yīng)的時間戳。注意mktime和gmtime、localtime是互逆操作。
參數(shù):
參數(shù)只有一個,是格式化時間對象。
返回值:
返回值是時間戳。
案例:
1.# 時間對象轉(zhuǎn)換為時間戳
2.time_num = time.mktime(time_struct)
3.print(time_num)
4.# 時間戳轉(zhuǎn)換為時間對象
5.time_struct2 = time.gmtime(time_num)
6.time_struct3 = time.localtime(time_num)
7.print(time_struct2)
8.print(time_struct3)
out:
1.1602409740.0
2.time.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)
3.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、一行代碼對日期排序:
1.ate_list = ['2020-9-10', '2020-9-20', '2020-9-15']
2.date_list2 = sorted(date_list, key=lambda x: time.strptime(x, '%Y-%m-%d'))
3.print(date_list2)
out:
1.['2020-9-10', '2020-9-15', '2020-9-20']
2、一行代碼計算2個日期相差天數(shù)
1.date1 = '2020-9-10'
2.date2 = '1999-9-9'
3.print((time.mktime(time.strptime(date1, '%Y-%m-%d'))-time.mktime(time.strptime(date2, '%Y-%m-%d')))/86400)
out:
1.72.0
初級會計職稱中級會計職稱經(jīng)濟(jì)師注冊會計師證券從業(yè)銀行從業(yè)會計實操統(tǒng)計師審計師高級會計師基金從業(yè)資格稅務(wù)師資產(chǎn)評估師國際內(nèi)審師ACCA/CAT價格鑒證師統(tǒng)計資格從業(yè)
一級建造師二級建造師消防工程師造價工程師土建職稱房地產(chǎn)經(jīng)紀(jì)人公路檢測工程師建筑八大員注冊建筑師二級造價師監(jiān)理工程師咨詢工程師房地產(chǎn)估價師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評價土地登記代理公路造價師公路監(jiān)理師化工工程師暖通工程師給排水工程師計量工程師
人力資源考試教師資格考試出版專業(yè)資格健康管理師導(dǎo)游考試社會工作者司法考試職稱計算機(jī)營養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級職稱護(hù)士資格證初級護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗技師臨床醫(yī)學(xué)理論中醫(yī)理論