孤荷凌寒自學python第二十七天python的datetime模組及初識datetime.date模組
(完整學習過程螢幕記錄視訊地址在文末,手寫筆記在文末)
一、datetime模組
datetime模組包含以下子模組:
(一) 表示時刻點 的模組
datetime.date
datetime.time
datetime.datetime
datetime.datetime_CAPI
(二) 表示時間間隔(時間長度)的模組
datetime.delta
(三) 表示時區資訊的模組
datetime.tzinfo
二、datetime模組表示時間的起止極限
datetime模組能表達1-9999年的所有時間。
有兩個相關常量
datetime.MINYEAR =1
datetime.MAXYEAR=9999
三、初識 datetime.date子模組
datetime.date例項化時的初始形參有三個:年、月、日
執行初始化即可得到一個例項化的datetime.date物件:
測試:
>>> import datetime
>>> dateTemp=datetime.date(2018,10,8)
>>> print(dateTemp)
2018-10-08
四、datetime.date物件的常用屬性
最常用的屬性有四個:
year 返回日期中的 年
month 返回日期中的 月
day 返回日期中的 日
__getattribute__ 獲取日期物件中指定的屬性
下面繼續上面的測試(只有新增加的程式碼部分)
>>> intY=dateTemp.year
>>> intM=dateTemp.month
>>> intD=dateTemp.day
>>> print(intY,intM,intD)
2018 10 8
>>> intY2=dateTemp.__getattribute__('year')
>>> print(intY2)
2018
五、比較兩個 datetime.date物件的大小
使用 datetime.date 物件的以下內部 方法 比較 當前datetime.date物件與另一個datetime.date物件的大小:
測試如下:
import datetime
dateOne=datetime.date(2018,6,30)
dateTwo=datetime.date(2018,7,1)
print(dateOne.__eq__(dateTwo)) #dateOne是否等於dateTwo
print(dateOne.__ge__(dateTwo)) #dateOne是否大於等於dateTwo
print(dateOne.__gt__(dateTwo)) #dateOne是否大於dateTwo
print(dateOne.__le__(dateTwo)) #dateOne是否小於等於dateTwo
print(dateOne.__lt__(dateTwo)) #dateOne是否小於dateTwo
print(dateOne.__ne__(dateTwo)) #dateOne是否不等於dateTwo
以上所有方法都返回 布林物件 True 或 False
六、兩個datetime.date物件的減法操作
1 正向相減(當前日期物件減去後面引數的日期物件)
x.__sub__(y) 表示x-y
2 反向相減 (後面的引數的日期物件減去當前日期物件)
x.__rsub__(y) 表示y-x
執行datetime.date物件的這兩個方法後,返回的是一個:
datetime.timedelta
物件。
七、對datetime.date物件的國際化處理(iso標準)
1 isocalendar()
執行此方法 ,將返回一個元組,此元組物件有三個元素,先後順序排列為:
年、一年的第幾周、星期幾(1表示星期一)
測試:
>>> import datetime
>>> a=datetime.date(2017,3,22)
>>> tpl=a.isocalendar()
>>> print(tpl)
(2017, 12, 3)
2 isoformat() __str__()
執行此方法,將返回國際標準的日期字串:
YYYY-MM-DD
在作業系統日期環境設定為中文的情況下,__str__()方法返回結果與isoformat()方法一樣。
測試:
>>> import datetime
>>> d=datetime.date(2018,10,9)
>>> strA=d.isoformat()
>>> strB=d.__str__()
>>> print(strA,strB)
2018-10-09 2018-10-09
3 isoweekday()
執行此方法 將返回 星期幾對應的數字 1-7,其中1表示星期一,7表示星期日
繼續上面的測試(以下程式碼只有新增的程式碼 部分)
>>> intWeekDay=d.isoweekday()
>>> print(intWeekDay)
2
八、datetime.date物件的其它方法
1 weekday()
執行此方法 將返回 星期幾對應的數字 0-6 ,其中0表示星期一,6表示星期日
2 timetuple()
執行此方法 將把當前datetime.date物件轉換成time模組中的 struct_time(標準時間元組)物件。
但datetime.date物件中沒有時間資訊,那麼,轉換後的struct_time(標準時間元組)物件中的所有與時間相關的值都用0來填充。
繼續上面的測試(以下程式碼只有新增的程式碼 部分):
>>> tplStruct_Time=d.timetuple()
>>> print(tplStruct_Time)
time.struct_time(tm_year=2018, tm_mon=10,tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=282, tm_isdst=-1)
——————————
今天整理的學習筆記完成,最後例行說明下我的自學思路:
根據過去多年我自學各種程式語言的經歷,認為只有真正體驗式,解決實際問題式的學習才會有真正的效果,即讓學習實際發生。在2004年的時候我開始在一個鄉村小學自學電腦 並學習vb6程式語言,沒有學習同伴,也沒有高師在上,甚至電腦都是孤島(鄉村那時還沒有網路),有的只是一本舊書,在痛苦的自學摸索中,我找到適應自己零基礎的學習方法:首先是每讀書的一小節就作相應的手寫筆記,第二步就是上機測試每一個筆記內容是否實現,其中會發現書中講的其實有出入或錯誤,第三步就是在上機測試之後,將筆記改為電子版,形成最終的修訂好的正確無誤的學習筆記。
通過反覆嘗試錯誤,在那個沒有分享與交流的黑暗時期我摸黑學會了VB6,爾後接觸了其它語言,也曾聽過付費視訊課程,結果發現也許自己學歷果然太低,就算是零基礎的入門課程,其實也難以跟上進度,講師的教學多數出現對初學者的實際情況並不瞭解的情況,況且學習者的個體也存在差異呢?當然更可怕的是收費課程的價格往往是自己難以承受的。
於是我的所有程式設計學習都改為了自學,繼續自己的三步學習筆記法的學習之路。
當然自學的最大問題是會走那麼多的彎路,沒有導師直接輸入式的教學來得直接,好在網路給我們帶來無限搜尋的機會,大家在網路上的學習日誌帶給我們共享交流的機會,而QQ群等交流平臺、網路社群的成立,我們可以一起自學,互相批評交流,也可以獲得更有效,更自主的自學成果。
於是我以人生已過半的年齡,決定繼續我的程式設計自學之路,開始學習python,只希望與大家共同交流,一個人的獨行是可怕的,只有一群人的共同前進才是有希望的。
誠摯期待您的交流分享批評指點!歡迎聯絡我加入從零開始的自學聯盟。
這個時代網際網路成為了一種基礎設施的存在,於是本來在孤獨學習之路上的我們變得不再孤獨,因為網路就是一個新的客廳,我們時刻都可以進行沙龍活動。
非常樂意能與大家一起交流自己自學心得和發現,更希望大家能夠對我學習過程中的錯誤給予指點——是的,這樣我就能有許多免費的高師了——這也是分享時代,社群時代帶來的好福利,我相信大家會的,是吧!
根據完全共享的精神,開源互助的理念,我的個人自學錄製過程是全部按4K高清視訊錄製的,從手寫筆記到驗證手寫筆記的上機操作過程全程錄製,但因為4K高清檔案太大均超過5G以上,所以無法上傳至網路,如有需要可聯絡我QQ578652607對傳,樂意分享。上傳分享到百度網盤的只是壓縮後的720P的視訊。
我的學習過程錄影百度盤地址分享如下:(清晰度:1280x720)
連結:https://pan.baidu.com/s/1sxoKKui9oqis5cPSnPam0w 密碼:msqa
喜馬拉雅語音筆記: