python時間處理(二)Datetime
阿新 • • 發佈:2018-12-06
上一篇內容瞭解了time模組,接下來看下Datetime模組,這裡主要想解決的問題是如何計算兩個時間的差,並且返回秒,分鐘,小時,所以內容主要更偏向於解決問題,如果大家沒有看到自己需要的,最後會放上官方文件供大家參考。
首先看一下它具有的類及描述:
類名 描述 datetime.
date
日期物件,屬性:year,month,和 day 。 datetime.
time
時間物件,屬性:hour,minute,second,microsecond 和 tzinfo。datetime.
datetime
日期和時間的組合物件,屬性:year,month,day,hour,minute,second,microsecond 和 tzinfo。 datetime.
timedelta
兩個日期或時間之間的差。 datetime.
tzinfo
表示 UTC 時區的固定偏移,是 tzinfo 基類的實現 datetime.
timezone
將 tzinfo 抽象基類實現為與UTC的固定偏移量的類。這裡需要注意的是datetime預設的兩個常量分別是
MINYEAR和MAXYEAR,即最小年與最大年分別是1和9999
datetime.MINYEAR #1 datetime.MAXYEAR #9999
為大家科普一下常用的方法:)
- datetime.date.today():返回當前時間,只會返回年月日。
- datetime.date.fromtimestamp(timestamp):返回時間戳所對應的時間,只會返回年月日。
- datetime.datetime.now():
返回當前時間,返回值為年月日,小時,分鐘,秒,毫秒。- datetime.datetime.strptime('2018-11-20 15:51:24.482422',"%Y-%m-%d %H:%M:%S.%f"):按字串的格式返回datetime.datetime資料。
- datetime.datetime.fromtimestamp(1542696019.5583735):返回時間戳所對應的時間,包含年月日,小時,分鐘,秒,微秒。
- datetime.datetime.timestamp(datetime.datetime()):返回時間戳,輸入的是datetime.datetime型別資料。
datetime.date.today() #datetime.date(2018, 11, 20) datetime.date.fromtimestamp(1542696019.5583735) #datetime.date(2018, 11, 20) datetime.datetime.now() #datetime.datetime(2018, 11, 20, 16, 4, 41, 186189) datetime.datetime.strptime('2018-11-20 15:51:24.482422',"%Y-%m-%d %H:%M:%S.%f") #datetime.datetime(2018, 11, 20, 15, 51, 24, 482422) datetime.datetime.fromtimestamp(1542696019.5583735) #datetime.datetime(2018, 11, 20, 14, 40, 19, 558373) datetime.datetime.timestamp(datetime.datetime(2018, 11, 20, 14, 40, 19, 558373)) #1542696019.558373
這裡提示大家一下,datetime.date.today()和datetime.datetime.now()返回的值是datetime.datetime格式,可以直接用str(datetime.datetime.now())的方法將資料轉換為字串,方便進行儲存。例如str(a),返回的結果是個字串。
接下來進入正題:
首先建立兩個時間:
a = datetime.datetime.now() b = datetime.datetime.now() #注意這兩個時間是在不同時間建立的,所以值不相同。
將這兩個時間相減可得:
c = b-a c #datetime.timedelta(0, 283, 433989) #上面是兩個時間相減產生的結果,返回的引數分別為天,秒,微秒 type(c) #datetime.timedelta
依次呼叫 datetime.timedelta 的屬性:
c.days #0 #天數 c.seconds #283 #秒數 c.total_seconds() #283.433989 #秒數加微秒的值
結果就如上所示了,其實關鍵點就是要先將時間轉換成 datetime.datetime 形式,然後就可以直接做運算。
官方文件如下:datetime