日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Bang!這個Python處理時(shí)間的庫,我拆解了!

Python里面處理時(shí)間庫的有很多,其中大家經(jīng)常用的有datetime。但是對于懶人來說還是很不爽,有么有更簡單的,可以把我們的需求比如的白話文本轉(zhuǎn)為字符串的時(shí)間庫呢,今天小編在GitHub找到了這個好玩的庫,一起來看一下。

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、南陽網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為南陽等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

這個庫的目標(biāo)就是通過簡單的字符串就可以操作datatime,算是在datatime上面再次做了一層封裝,有點(diǎn)意思啊,我們一起來一探究竟。

安裝一下:

pytime的安裝很簡單,直接用pip3 install pytime即可。

如何使用:

1).簡單的獲取當(dāng)前的月,周,日的時(shí)間,以及上周,上月的時(shí)間

看一下輸出的結(jié)果:

today:2020-08-16

this week:(datetime.date(2020, 8, 10), datetime.date(2020, 8, 17))

last week:(datetime.date(2020, 8, 3), datetime.date(2020, 8, 11))

this_month:(datetime.date(2020, 8, 1), datetime.date(2020, 9, 1))

日期的范圍其實(shí)就是一個tuple類型的datatime起始-結(jié)束的日期范圍。

2).直接輸出節(jié)日日期

比如常見的圣誕節(jié),情人節(jié)啊,新年,母親節(jié),父親節(jié)之類的節(jié)日

拆解源碼

看起來是作者做了一層固定節(jié)日的封裝,我們來看一下源碼,一探究竟,看看源碼里面都封裝了那些節(jié)日:

源碼里面可以清晰的看到作者是如何構(gòu)造的這個節(jié)日,其實(shí)就是進(jìn)行了一些簡單的運(yùn)算,但是代碼寫的還是非常工整的。

3).識別文本字符串-得到日期

這個動態(tài)的識別文本,然后計(jì)算時(shí)間,應(yīng)該是這個庫最吸引人的地方,畢竟上面的日期,節(jié)假日其中你自己也可以封裝的。但是識別文本就有點(diǎn)意思了:

上面兩個函數(shù),分別計(jì)算某一個日期前多少多少天,和某一個日期的后多少多少天,能自動的識別這一段字符串比如

2years 3mon 23week 3d 2hr

或者是沒有空格連在一起寫也可以

2years3mon23week3d2hr

拆解源碼:

非常給力,小編也非常好奇它是怎么做到的,于是我扒開了這段源碼看了一些:

原來before這個函數(shù)的接口有兩個參數(shù),一個就是base,一個是diff,base把時(shí)間字符串轉(zhuǎn)為datetime類型,然后diff會用一個dp(diff)進(jìn)行封裝,然后解析這個一長串的字符串,順藤摸瓜,我們一起來看一下這dp(diff)干了啥事情:

dp = BaseParser.parse_diff

dp其實(shí)是一個BaseParse這個解析器的一個接口函數(shù),也就是說所以的字符串的解析都在這個parse_diff里面:

果然這個函數(shù)里面就是專門來處理我們輸入的"2years 3mon 23week 3d 2hr",作者做了很多封裝的處理,就是為了我們使用的時(shí)候更智能一些。

通過一層一層的拆解,你會發(fā)現(xiàn)整個作者在設(shè)計(jì)這個庫的思路和一些技巧點(diǎn),這樣的過程經(jīng)常練習(xí),對你提高Python功力大有裨益,有興趣的小伙伴也可以試試這個庫,代碼動起來。


分享標(biāo)題:Bang!這個Python處理時(shí)間的庫,我拆解了!
文章源于:http://m.5511xx.com/article/dpcehoj.html