當(dāng)我們在Python中需要使用到時間的時候,有兩個關(guān)于時間的模塊,分別是time和datetime。time模塊偏底層,在部分函數(shù)運行的時候可能會出現(xiàn)不同的結(jié)果,而datetime模塊提供了高級API,使用起來更為方便,我們通常在使用的時候會涉及到包含時間和日期的datetime、只包含日期的date以及只包含時間的time,本節(jié)我們就對這三種方法進行學(xué)習(xí)。
1. datetime
datetime的使用方法為:
datetime.dateto,e(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
其中year,month和day是不能缺少的,tzinfo為時區(qū)參數(shù),可以為None或其他參數(shù),其余參數(shù)的范圍如下:
MINYEAR <= year <= MAXYEAR,
1 <= month <= 12,
1 <= day <= number of days in the given month and year,
0 <= hour < 24,
0 <= minute < 60,
0 <= second < 60,
0 <= microsecond < 1000000,
fold in [0, 1].
下面講幾種常用的方法:
1) datetime.datetime.now()
返回當(dāng)前的日期和時間。
代碼如下:
import datetime t = datetime.datetime.now()#返回當(dāng)前日期及時間 print(t)
輸出結(jié)果為:
2020-02-01 19:18:59.926474
2) date()
返回當(dāng)前時間的日期。
代碼如下:
import datetime t = datetime.datetime.now()#返回當(dāng)前日期及時間 print(t.date())#輸出當(dāng)前的日期
輸出結(jié)果:
2020-02-01
3) time()
返回當(dāng)前的時間對象。
代碼如下:
import datetime t = datetime.datetime.now()#返回當(dāng)前日期及時間 print(t.time())#輸出當(dāng)前的時間
輸出結(jié)果為:
19:22:10.948940
4) utctimetuple()
返回UTC時間元組。
代碼如下:
import datetime t = datetime.datetime.now()#返回當(dāng)前日期及時間 print(t.utctimetuple())#輸出當(dāng)前的日期
輸出結(jié)果為:
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=1, tm_hour=19, tm_min=23, tm_sec=29, tm_wday=5, tm_yday=32, tm_isdst=0)
2. date
date對象是日期的專屬對象,語法格式如下:
datetime.date(year,month,day),參數(shù)分別代表年月日。
date類中的常用功能有2種:
1) datetime.date.today()
這種用法直接返回了當(dāng)前的日期,代碼如下:
import datetime t = datetime.date.today()#返回當(dāng)前日期 print(t)
輸出結(jié)果為:
2020-02-01
2) datetime.date.fromtimestamp()
這種方式返回與時間戳對應(yīng)的日期,代碼如下:
import datetime import time c = time.time()#返回當(dāng)前的時間戳 print('當(dāng)前的時間戳為:',c) t = datetime.date.fromtimestamp(c)#與時間戳對應(yīng)的日期 print('當(dāng)前時間戳對應(yīng)的日期為:',t)
輸出結(jié)果為:
當(dāng)前的時間戳為: 1580556848.3161435 當(dāng)前時間戳對應(yīng)的日期為: 2020-02-01
在這個例題中我們先引入了time模塊中的方法,time模塊中的time.time()能返回當(dāng)前時間戳,然后我們使用上面的方法可以返回與時間戳對應(yīng)的日期。
3. time
time類中包含了一整天的信息,語法結(jié)構(gòu)如下:
datetime.time(hour,moniute,second,microsecond,tzinfo=None)
最后一個時區(qū)可以省略,看下面例子:
import datetime t = datetime.time(19,42,34,12) print(t)
輸出結(jié)果為:
19:42:34.000012
4. 總結(jié)
由于datetime模塊中封裝了time模塊,所以我們使用datetime模塊可以保證數(shù)據(jù)更為精確,在使用過程中也可以穿插著time模塊中的部分功能,例如暫停time.sleep()等方法。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導(dǎo)課程