Python?arrow?更好的日期時間模塊
Python中有很多時間和日期處理的庫,有time、datetime等,雖然提供了很完整的對日期、時間以及時區(qū)轉(zhuǎn)換處理的功能,但是方法過多,不易于記憶,而且經(jīng)常需要各種轉(zhuǎn)換操作,非常繁瑣,比如時間和時間戳的轉(zhuǎn)換,格式化時間字符串轉(zhuǎn)換等等,幾乎每次使用都要先看一下教程文檔。那么有沒有使用起來更人性化的日期時間處理庫呢?接下來就來看一下arrow日期時間庫。
arrow是一個專門處理時間和日期的輕量級Python庫,它提供了一種合理、人性化的方式來創(chuàng)建、操作、格式化、轉(zhuǎn)換日期、時間和時間戳,可以比較輕易的創(chuàng)建具有時區(qū)意識的日期和時間實(shí)例。
可以使用pip install arrow進(jìn)行安裝。
arrow模塊的使用
獲取arrow對象
Arrow可以很靈活的將多種格式的時間數(shù)據(jù)轉(zhuǎn)換成Arrow對象,如下:
import arrow
print(repr(arrow.Arrow(2021, 8, 23, 8)))
print(repr(arrow.get(2021, 8, 23, 8, 40)))
print(repr(arrow.get('2021-08-23 09:00')))
print(repr(arrow.get('2021.08.23')))
print(repr(arrow.get('23/2012/08', 'DD/YYYY/MM')))
執(zhí)行結(jié)果如下:

上面幾種方式都可以將字符數(shù)據(jù)轉(zhuǎn)換為arrow對象,轉(zhuǎn)換非常靈活。 除此之外,還可以把時間戳轉(zhuǎn)換為arrow對象。
print(repr(arrow.get(1629683393.6558669)))
獲取當(dāng)前時間
utc_time = arrow.utcnow() local_time = arrow.now() print(utc_time) print(local_time)
通過utcnow()函數(shù)和now()函數(shù)分別獲取的是utc時間和本地時間,當(dāng)然我們也可以在調(diào)用now()時指定時區(qū),從而獲取指定時區(qū)的時間,例如arrow.now('US/Pacific')。
時間形式轉(zhuǎn)換
使用日期時間的時候我們經(jīng)常需要轉(zhuǎn)換操作,比如轉(zhuǎn)換成指定格式的時間字符串,轉(zhuǎn)換成時間戳等。
轉(zhuǎn)換成時間字符串
now = arrow.now()
print(now)
print(now.format())
print(now.format("YYYY-MM-DD hh:mm:ss"))
print(now.format("YYYY-MM-DD"))
執(zhí)行結(jié)果如下:

看到這個,是不是感覺比datetime模塊的'%Y-%M-%D %h:%m:%s'格式化方式更人性化更便于記憶呢。
轉(zhuǎn)換成時間戳
可以使用t.timestamp將arrow對象轉(zhuǎn)換成時間戳。
now.timestamp
獲取數(shù)據(jù)
轉(zhuǎn)換為Arrow對象后,我們可以很方便的獲取我們想要的各種時間數(shù)據(jù),通過year、month、day、hour、minute、second、week等屬性,如:
now = arrow.now() print(now.year) print(now.month) print(now.day) print(now.hour) print(now.minute) print(now.second) print(now.week)
修改時間
有時拿到一個時間時,我們需要對時間就行修改,例如修改時區(qū)、修改時間等等,我們可以使用以下方式去修改。
now = arrow.now()
print(now.format("YYYY-MM-DD hh:mm:ss")) # 2021-08-23 10:11:04
now_utc = now.to("utc")
print(now_utc.format("YYYY-MM-DD hh:mm:ss")) # 2021-08-23 02:11:04
now1 = now.replace(day=31, hour=12)
print(now1.format("YYYY-MM-DD hh:mm:ss")) # 2021-08-31 12:11:04
now2 = now.shift(months=-2)
print(now2.format("YYYY-MM-DD hh:mm:ss")) # 2021-06-23 10:11:04
我們可以使用to()方法切換時區(qū),使用replace()方法修改時間,使用shift()進(jìn)行時間的前后推移。
同Python內(nèi)置日期datetime庫一樣,arrow對象也支持時間的大小對比,還有計算時間差操作,除此之外,還有很多意想不到的操作,感興趣的話,可以查看官方文檔:Arrow: Better dates & times for Python — Arrow 1.1.1 documentation)
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
PyCharm 2021.2 (Professional)調(diào)試遠(yuǎn)程服務(wù)器程序的操作技巧
本文給大家分享用 PyCharm 2021 調(diào)試遠(yuǎn)程服務(wù)器程序的過程,通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-08-08
Python?中將數(shù)字轉(zhuǎn)換為字母的方法
本文詳細(xì)介紹了在 Python 中將數(shù)字轉(zhuǎn)換為字母的幾種常用方法,我們介紹了使用 chr() 函數(shù)、string 模塊和 ord() 函數(shù)等方法,并提供了示例代碼幫助你理解和應(yīng)用這些方法,感興趣的朋友跟隨小編一起看看吧2023-06-06
Python實(shí)現(xiàn)猜數(shù)字小游戲
這篇文章介紹了Python實(shí)現(xiàn)猜數(shù)字小游戲,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以收藏下,方便下次瀏覽觀看2021-12-12
對python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié)
今天小編就為大家分享一篇對python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

