Python使用arrow庫(kù)優(yōu)雅地處理時(shí)間數(shù)據(jù)詳解
前言
大家應(yīng)該都知道在很多時(shí)候我們不得不和時(shí)間打交道,但在Python標(biāo)準(zhǔn)庫(kù)中處理時(shí)間的模塊其實(shí)設(shè)計(jì)的不是很友好,為什么我會(huì)這么說(shuō)?因?yàn)槲蚁嘈糯蟛糠秩藥缀趺看卧谔幚頃r(shí)間數(shù)據(jù)時(shí)一而再,再而三的去查文檔,比如時(shí)間和文本格式互轉(zhuǎn),時(shí)間增減等看起來(lái)非?;镜牟僮?,在Python中處理起來(lái)并不簡(jiǎn)單。
最要命的是,在Python標(biāo)準(zhǔn)庫(kù)中居然有兩個(gè)模塊處理時(shí)間,一個(gè)叫time,另外一個(gè)叫datetime,里面提供了類似的方法但是兩個(gè)完全不是一回事。到這還沒(méi)完,標(biāo)準(zhǔn)庫(kù)里還有一個(gè)叫calendar的模塊,也是用來(lái)處理時(shí)間的。
今天我不帶大家去理解他們?nèi)叩年P(guān)系,因?yàn)楝F(xiàn)在你記住了不代表你以后不會(huì)忘記。今天的主角是一個(gè)優(yōu)雅到我不能放棄的時(shí)間處理庫(kù) - arrow。
簡(jiǎn)介
arrow是一個(gè)專門處理時(shí)間和日期的輕量級(jí)Python庫(kù),它提供了一種合理、智能的方式來(lái)創(chuàng)建、操作、格式化、轉(zhuǎn)換時(shí)間和日期。
安裝
pip install arrow
使用
我們直接看代碼,注釋既分割線。
>>> import arrow
# 獲取當(dāng)前時(shí)間
>>> utc = arrow.utcnow()
>>> utc
<Arrow [2017-05-11T21:23:58.970460+00:00]>
# 調(diào)整時(shí)間
>>> utc = utc.shift(days=+1, hours=-1)
>>> utc
<Arrow [2017-05-12T20:23:58.970460+00:00]>
# 修改時(shí)間
>>> utc.replace(hour=4, minute=40)
<Arrow [2017-05-12T04:40:58.970460+00:00]>
# 轉(zhuǎn)換時(shí)區(qū)
>>> local = utc.to('US/Pacific')
>>> local
<Arrow [2017-05-11T13:23:58.970460-07:00]>
# 從文本轉(zhuǎn)為時(shí)間對(duì)象
>>> arrow.get('2017-05-11T21:23:58.970460+00:00')
<Arrow [2017-05-11T21:23:58.970460+00:00]>
>>> arrow.get(1367900664)
<Arrow [2017-05-07T04:24:24+00:00]>
>>> arrow.get('June was born in May 1980', 'MMMM YYYY')
<Arrow [1980-05-01T00:00:00+00:00]>
# 獲取時(shí)間戳
>>> local.timestamp
1368303838
# 格式化輸出
>>> local.format()
'2017-05-11 13:23:58 -07:00'
>>> local.format('YYYY-MM-DD HH:mm:ss')
'2017-05-11 13:23:58'
>>> local.humanize()
'an hour ago'
# 轉(zhuǎn)為標(biāo)準(zhǔn)庫(kù)對(duì)象
>>> a.date()
datetime.date(2017, 5, 7)
>>> a.time()
datetime.time(4, 38, 15, 447644)
總結(jié)
我沒(méi)有騙你吧?如果以后你的Python項(xiàng)目需要處理時(shí)間,請(qǐng)果斷拋棄標(biāo)準(zhǔn)庫(kù),arrow將拯救你無(wú)數(shù)腦細(xì)胞。
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
附上arrow官方文檔,更多酷炫用法還是前往官網(wǎng)。
相關(guān)文章
運(yùn)用PyTorch動(dòng)手搭建一個(gè)共享單車預(yù)測(cè)器
這篇文章主要介紹了運(yùn)用PyTorch動(dòng)手搭建一個(gè)共享單車預(yù)測(cè)器,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
python使用scrapy發(fā)送post請(qǐng)求的坑
這篇文章主要介紹了使用scrapy發(fā)送post請(qǐng)求的坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
pytorch打印網(wǎng)絡(luò)結(jié)構(gòu)的實(shí)例
今天小編就為大家分享一篇pytorch打印網(wǎng)絡(luò)結(jié)構(gòu)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
Django零基礎(chǔ)入門之自定義標(biāo)簽及模板中的使用
這篇文章主要介紹了Django零基礎(chǔ)入門之自定義標(biāo)簽及模板中的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
關(guān)于WARNING:Ignoring?invalid?distribution?-pencv-python....
這篇文章主要給大家介紹了關(guān)于WARNING:Ignoring?invalid?distribution?-pencv-python....警告信息的處理方法,文中通過(guò)圖文將解決的辦法介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-03-03
Python如何檢驗(yàn)樣本是否服從正態(tài)分布
這篇文章主要介紹了Python如何檢驗(yàn)樣本是否服從正態(tài)分布問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
簡(jiǎn)單實(shí)現(xiàn)python聊天程序
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單聊天程序的相關(guān)代碼,包括客戶端和服務(wù)端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Python實(shí)現(xiàn)Canny及Hough算法代碼實(shí)例解析
這篇文章主要介紹了Python實(shí)現(xiàn)Canny與Hough算法代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08

