Python使用arrow庫優(yōu)雅地處理時(shí)間數(shù)據(jù)詳解
前言
大家應(yīng)該都知道在很多時(shí)候我們不得不和時(shí)間打交道,但在Python標(biāo)準(zhǔn)庫中處理時(shí)間的模塊其實(shí)設(shè)計(jì)的不是很友好,為什么我會(huì)這么說?因?yàn)槲蚁嘈糯蟛糠秩藥缀趺看卧谔幚頃r(shí)間數(shù)據(jù)時(shí)一而再,再而三的去查文檔,比如時(shí)間和文本格式互轉(zhuǎn),時(shí)間增減等看起來非?;镜牟僮?,在Python中處理起來并不簡單。
最要命的是,在Python標(biāo)準(zhǔn)庫中居然有兩個(gè)模塊處理時(shí)間,一個(gè)叫time,另外一個(gè)叫datetime,里面提供了類似的方法但是兩個(gè)完全不是一回事。到這還沒完,標(biāo)準(zhǔn)庫里還有一個(gè)叫calendar的模塊,也是用來處理時(shí)間的。
今天我不帶大家去理解他們?nèi)叩年P(guān)系,因?yàn)楝F(xiàn)在你記住了不代表你以后不會(huì)忘記。今天的主角是一個(gè)優(yōu)雅到我不能放棄的時(shí)間處理庫 - arrow。
簡介
arrow是一個(gè)專門處理時(shí)間和日期的輕量級(jí)Python庫,它提供了一種合理、智能的方式來創(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)庫對(duì)象 >>> a.date() datetime.date(2017, 5, 7) >>> a.time() datetime.time(4, 38, 15, 447644)
總結(jié)
我沒有騙你吧?如果以后你的Python項(xiàng)目需要處理時(shí)間,請(qǐng)果斷拋棄標(biāo)準(zhǔn)庫,arrow將拯救你無數(shù)腦細(xì)胞。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
附上arrow官方文檔,更多酷炫用法還是前往官網(wǎng)。
相關(guān)文章
Python+moviepy實(shí)現(xiàn)音頻/視頻提取器
這篇文章主要為大家詳細(xì)介紹了如何使用Python和wxPython構(gòu)建的音頻/視頻提取器應(yīng)用程序,允許用戶從視頻文件中提取音頻,或者從音頻文件中截取特定時(shí)間段,需要的可以參考下2024-10-10python redis 批量設(shè)置過期key過程解析
這篇文章主要介紹了python redis 批量設(shè)置過期key過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11python神經(jīng)網(wǎng)絡(luò)Xception模型復(fù)現(xiàn)詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Xception模型復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python學(xué)習(xí)筆記之文件的讀寫操作實(shí)例分析
這篇文章主要介紹了Python學(xué)習(xí)筆記之文件的讀寫操作,結(jié)合實(shí)例形式詳細(xì)分析了Python常見的文件讀寫操作實(shí)現(xiàn)技巧及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-08-08一文教你將Visual Studio Code變成Python開發(fā)神器
Visual Studio Code 是一款功能強(qiáng)大、可擴(kuò)展且輕量級(jí)的代碼編輯器,經(jīng)過多年的發(fā)展,已經(jīng)成為 Python 社區(qū)的首選代碼編輯器之一。本文將為大家介紹一下如何將Visual Studio Code變成Python開發(fā)神器,需要的可以參考一下2022-07-07python中pandas庫中DataFrame對(duì)行和列的操作使用方法示例
這篇文章主要介紹了python中pandas庫中DataFrame對(duì)行和列的操作使用方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Python實(shí)現(xiàn)Canny及Hough算法代碼實(shí)例解析
這篇文章主要介紹了Python實(shí)現(xiàn)Canny與Hough算法代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08python報(bào)錯(cuò): ''list'' object has no attribute ''shape''的解決
這篇文章主要介紹了python報(bào)錯(cuò): 'list' object has no attribute 'shape'的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07