(完整學習過程屏幕記錄視頻地址在文末,手寫筆記在文末)python
datetime.timedelta模塊是一個表示 時間長度的 類,不是以前datetime.datetime那樣的 表示 時間點(時刻點)的類。編程
1、怎樣獲得一個datetime.timedelta對象網絡
(一) 方法一:兩個表示時刻點的日期時間對象直接進行減法運算就會獲得一個datetime.timedelta對象。編程語言
注意:datetime.date對象之間、datetime.datetime對象之間能夠進行同種類對象的減法運算。但datetime.time對象不能進行減法運算。ide
(二) 方法二:經過三個類的對象都有的:__sub__ __rsub__方法進行減法運算。學習
測試:測試
import time3d
import datetime日誌
#表示時間長度的對象 datetime.timedelta類視頻
d1=datetime.datetime(2018,7,1,22,34,43,998) #d1是一個datetime.datetime類的對象
d2=datetime.datetime(2018,7,2,23,54,23,766)
tdt1=d2-d1 #經過兩個時刻點的時間對象的相減操做,能夠獲取一個datetime.timedelta類的對象
tdt2=d2.__sub__(d1) #做用等同於d2-d1
上面測試例子中獲得的:tdt1,tdt2都是datetime.timedelta對象。
(三) 直接將類datetime.timedelta實例化爲一個datetime.timedelta對象;
新datetime.timedelta對象=datetime.timedelta(時間單位=數量)
時間單位能夠是:
days 天
hours 時
minutes 分
seconds 秒
microseconds 微秒
注意此類的初始化方法的參數是一個關鍵字參數,必須以關鍵字賦值的方法傳遞實參給形參。
測試:
import time
import datetime
#表示時間長度的對象 datetime.timedelta類
d1=datetime.datetime(2018,7,1,22,34,43,998) #d1是一個datetime.datetime類的對象
d2=datetime.datetime(2018,7,2,23,54,23,766)
tdt1=d2-d1 #經過兩個時刻點的時間對象的相減操做,能夠獲取一個datetime.timedelta類的對象
tdt2=d2.__sub__(d1) #做用等同於d2-d1
#經過的類的初始化建構一個 時長類 的對象
tdt3=datetime.timedelta(hours=8) #傳遞的實參是 關鍵字參數 方法傳遞的,即 時間單位的複數單詞=具體的數字,表達是 具體的數字 時間單位
#此處的關鍵字參數中的關鍵字只有:days hours minutes seconds microseconds
print(tdt1)
print(tdt2)
print(tdt3)
運行結果:
1 day, 1:19:39.999768
1 day, 1:19:39.999768
8:00:00
2、datetime.timedelta對象的常見屬性
days
此屬性返回datetime.timedelta對象中表示的時間長度的天數部分
microseconds
此屬性返回datetime.timedelta對象中表示的時間長度的微秒數部分
此值將大於等於0秒,但小於1秒。
seconds
此屬性返回datetime.timedelta對象中表示的時間長度的秒數部分
此值將大於等於0秒,但小於1天。
注意沒有:時、分數的屬性!只能經過換算seconds屬性值來獲得。
測試:
import datetime
#表示時間長度的對象 datetime.timedelta類
d1=datetime.datetime(2018,7,1,22,34,43,998) #d1是一個datetime.datetime類的對象
d2=datetime.datetime(2018,7,2,23,54,23,766)
tdt1=d2-d1 #經過兩個時刻點的時間對象的相減操做,能夠獲取一個datetime.timedelta類的對象
tdt2=d2.__sub__(d1) #做用等同於d2-d1
#經過的類的初始化建構一個 時長類 的對象
tdt3=datetime.timedelta(hours=8) #傳遞的實參是 關鍵字參數 方法傳遞的,即 時間單位的複數單詞=具體的數字,表達是 具體的數字 時間單位
#此處的關鍵字參數中的關鍵字只有:days hours minutes seconds microseconds
print(tdt1.days) #時長中的天的部分 = 1
print(tdt1.seconds) #時長中的秒的部分,不是時長總的秒數,只是時長中,秒的部分,=4779 (約80分鐘)
print(tdt3.microseconds)#時長中的 微秒 部分,=999768 (接近1秒)
運算結果:
1
4779
0
3、datetime.timedelta對象能夠直接和datetime.datetime對象進行加減運算。
返回值仍然是一個新的datetime.datetime對象。
測試:
import time
import datetime
#表示時間長度的對象 datetime.timedelta類
d1=datetime.datetime(2018,7,1,22,34,43,998) #d1是一個datetime.datetime類的對象
d2=datetime.datetime(2018,7,2,23,54,23,766)
tdt1=d2-d1 #經過兩個時刻點的時間對象的相減操做,能夠獲取一個datetime.timedelta類的對象
tdt2=d2.__sub__(d1) #做用等同於d2-d1
#經過的類的初始化建構一個 時長類 的對象
tdt3=datetime.timedelta(hours=8) #傳遞的實參是 關鍵字參數 方法傳遞的,即 時間單位的複數單詞=具體的數字,表達是 具體的數字 時間單位
#此處的關鍵字參數中的關鍵字只有:days hours minutes seconds microseconds
d3=d1+tdt1 #d1是一個datetime.datetime對象,tdt1是一個datetime.timedelta對象,直接相加,返回一個新的datetime.datetime對象
print(d3)
運行結果:
2018-07-02 23:54:23.000766
——————————
今天整理的學習筆記完成,最後例行說明下個人自學思路:
根據過去多年我自學各類編程語言的經歷,認爲只有真正體驗式,解決實際問題式的學習纔會有真正的效果,即讓學習實際發生。在2004年的時候我開始在一個鄉村小學自學電腦 並學習vb6編程語言,沒有學習同伴,也沒有高師在上,甚至電腦都是孤島(鄉村那時尚未網絡),有的只是一本舊書,在痛苦的自學摸索中,我找到適應本身零基礎的學習方法:首先是每讀書的一小節就做相應的手寫筆記,第二步就是上機測試每個筆記內容是否實現,其中會發現書中講的其實有出入或錯誤,第三步就是在上機測試以後,將筆記改成電子版,造成最終的修訂好的正確無誤的學習筆記。
經過反覆嘗試錯誤,在那個沒有分享與交流的黑暗時期我摸黑學會了VB6,爾後接觸了其它語言,也曾聽過付費視頻課程,結果發現也許本身學歷果真過低,就算是零基礎的入門課程,其實也難以跟上進度,講師的教學多數出現對初學者的實際狀況並不瞭解的狀況,何況學習者的個體也存在差別呢?固然更可怕的是收費課程的價格每每是本身難以承受的。
因而個人全部編程學習都改成了自學,繼續本身的三步學習筆記法的學習之路。
固然自學的最大問題是會走那麼多的彎路,沒有導師直接輸入式的教學來得直接,好在網絡給咱們帶來無限搜索的機會,你們在網絡上的學習日誌帶給咱們共享交流的機會,而QQ羣等交流平臺、網絡社區的成立,咱們能夠一塊兒自學,互相批評交流,也能夠得到更有效,更自主的自學成果。
因而我以人生已過半的年齡,決定繼續個人編程自學之路,開始學習python,只但願與你們共同交流,一我的的獨行是可怕的,只有一羣人的共同前進纔是有但願的。
誠摯期待您的交流分享批評指點!歡迎聯繫我加入從零開始的自學聯盟。
這個時代互聯網成爲了一種基礎設施的存在,因而原本在孤獨學習之路上的咱們變得再也不孤獨,由於網絡就是一個新的客廳,咱們時刻均可以進行沙龍活動。
很是樂意能與你們一塊兒交流本身自學心得和發現,更但願你們可以對我學習過程當中的錯誤給予指點——是的,這樣我就能有許多免費的高師了——這也是分享時代,社區時代帶來的好福利,我相信你們會的,是吧!
根據徹底共享的精神,開源互助的理念,個人我的自學錄製過程是所有按4K高清視頻錄製的,從手寫筆記到驗證手寫筆記的上機操做過程全程錄製,但由於4K高清文件太大均超過5G以上,因此沒法上傳至網絡,若有須要可聯繫我QQ578652607對傳,樂意分享。上傳分享到百度網盤的只是壓縮後的720P的視頻。
個人學習過程錄像百度盤地址分享以下:(清晰度:1280x720)
連接:https://pan.baidu.com/s/18yNvSFJNb0pqEtE3eB1pYA 密碼:lo1v
Bilibili:
https://www.bilibili.com/video/av37644133/
喜馬拉雅語音筆記: