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