編寫Python程序,處理日期和時間經(jīng)常會遇到,幸好Python本身集成了很多日期、時間相關(guān)的模塊,讓這件繁瑣的工作變的方便。本文介紹Python中功能強大的datetime模塊。 datetime模塊專門處理涉及時間相關(guān)的工作,比如日期、小時、分鐘、秒、星期、月、年等,該模塊也提供其他高級的功能,如操作時區(qū)和夏令時,同時還能夠處理時間戳等。datetime模塊有五個常用的類:
下面對datetime模塊常用的類和函數(shù)做介紹: datetime類是datetime模塊中功能最強大的類,它可以同時操作日期和時間。 1,得到當前時間,通過datetime類的一個簡單函數(shù)就可以實現(xiàn): #!/usr/bin/env pythonimport datetimedatetime_now = datetime.datetime.now() #now是一個類函數(shù)print(datetime_now) 輸出:
2,從日期字符串中得到y(tǒng)ear和month信息 使用strptime和strftime實現(xiàn)字符串到datetime對象的轉(zhuǎn)換, datetime_string = '2021-04-05'datetime_obj = datetime.datetime.strptime(datetime_string, '%Y-%m-%d')print(datetime_obj)print(datetime_obj.year)print(datetime_obj.month) 輸出:
得到小時和分鐘信息類似,因為datetime對象有hour和minute屬性。 3,從日期字符串中得到星期幾的信息 在上面代碼的基礎(chǔ)上,添加下面的代碼: print(datetime_obj.weekday()) 輸出:
0代表的就是周一,但這樣不直觀,通過Python的calendar模塊可以讓輸出更直觀。 import calendarprint(calendar.day_name[datetime_obj.weekday()]) 輸出: Monday 4,得到當前的周是本年的第幾周 為了得到這個結(jié)果,我們是不是要進行復(fù)雜的數(shù)學計算,當然不用,datetime模塊已經(jīng)集成了相關(guān)的函數(shù),通過調(diào)用datetime對象的函數(shù)ioscalendar就可以。
輸出: (2021, 14, 1) 上面函數(shù)輸出的結(jié)果是一個三元組,其中第二個元素就是本周是今年的第幾個周。 5,實現(xiàn)datetime對象和Unix timestamp的轉(zhuǎn)換 Unix timestamp因為方便程序處理,在實際代碼編寫過程中經(jīng)常遇到,依賴datetime模塊可以非常方便地實現(xiàn)Unix timestamp和datetime對象的轉(zhuǎn)換,
輸出: Timestamp:1617626697.906258Datetime Object:2021-04-05 20:44:57.906258 6,時間跨度的計算 有時程序的判斷條件依賴過去或?qū)淼臅r間點,這時可以使用datetime模塊的timedelta類。
輸出: Today is: 2021-04-05 21:06:17.844471Date after 10 days: 2021-04-15 21:06:17.844471 總結(jié) |
|