一篇文章帶你詳細(xì)了解python中一些好用的庫
時(shí)間庫—arrow
使用背景
日期時(shí)間處理在實(shí)際應(yīng)用場(chǎng)景中無處不在,所以這也成了編程語言中必不可少的模塊,Python 也不例外。但是,你知道在Python中有多少個(gè)相關(guān)的模塊嗎?datetime、time、calendar、 dateutil、 pytz
等等。 你知道有多少種數(shù)據(jù)類型嗎?date、time、datetime、tzinfo、timedelta
等等。
博主在一次需求中遇到需要統(tǒng)計(jì)近幾個(gè)月間的數(shù)據(jù),前端傳給我的是當(dāng)前的時(shí)間戳,要通過時(shí)間戳來往前推三個(gè)月,或者四個(gè)月,半年的時(shí)間,如果只能通過加減時(shí)間的話就會(huì)變得很麻煩,所以想到了使用python的時(shí)間庫----arrow
在介紹時(shí)間庫之前,我們來看一看python的各個(gè)時(shí)間格式間是如何轉(zhuǎn)換的
不管怎樣,你終究還是要熟練這些模塊和API操作的,記不住沒關(guān)系,至少你都要手動(dòng)敲幾遍,下次遇到時(shí)要能做到翻看文檔能快速定位到某個(gè)類某個(gè)方法是做什么用、怎么用。
但今天我要強(qiáng)烈安利給你的這個(gè)時(shí)間日期庫:Arrow。它的靈感來自于 requests 庫。將所有繁雜的東西全部隱藏于身后,留給你的是 for humans 接口。充分詮釋了 keep it simple and stupid 這句話的含義。
安裝arrow
pip install arrow
arrow使用
- 獲取當(dāng)前時(shí)間
- 獲取不同時(shí)間格式
游標(biāo)卡尺shift
這個(gè)是arrow中我認(rèn)為最好用的一個(gè)屬性,他可以讓你隨便將時(shí)間進(jìn)行向前或者向后的推移,基本可以滿足你所有關(guān)于時(shí)間上推算的操作,抓緊用起來吧
- 向后推算時(shí)間
- 向前推算時(shí)間
- humanize
humanize 方法是相對(duì)于當(dāng)前時(shí)刻表示為“多久以前”的一種可讀行字符串形式,默認(rèn)是英文格式,指定 locale 可顯示相應(yīng)的語言格式。
- format
獲取arrow對(duì)象
- get方法是最好用的獲取arrow對(duì)象的方式
# 不帶參數(shù),等價(jià)與 utcnow() >>> arrow.get() <Arrow [2018-08-24T07:11:50.528742+00:00]> # 接受時(shí)間戳參數(shù) >>> arrow.get(1535113845) # 接受一個(gè)datetime對(duì)象 >>> arrow.get(datetime(2018,8,24)) <Arrow [2018-08-24T00:00:00+00:00]> # 接收一個(gè)date對(duì)象 >>> from datetime import date >>> arrow.get(date(2018,7,24)) <Arrow [2018-07-24T00:00:00+00:00]> # 接收日期格式的字符串 >>> arrow.get("2018-08-11 12:30:56") <Arrow [2018-08-11T12:30:56+00:00]> # 接收日期字符串,并指定格式 >>> arrow.get("18-08-11 12:30:56", "YY-MM-DD HH:mm:ss") <Arrow [2018-08-11T12:30:56+00:00]>
arrow的類型轉(zhuǎn)換和時(shí)區(qū)修改
# 字符串轉(zhuǎn)時(shí)間 print(arrow.get('2017-10-28T00:00:00+0800')) # print(arrow.get('2017-10-28', 'YYYY-MM-DD')) # 字符串轉(zhuǎn)時(shí)間(不推薦這樣用,沒有設(shè)時(shí)區(qū)) print(arrow.get('2017-10-28', 'YYYY-MM-DD', tzinfo='local')) # (推薦) print(arrow.get('2017-10-28', 'YYYY-MM-DD', tzinfo='Asia/Shanghai')) # 這樣也可以 print(arrow.get('2017-10-28 05:30:30', 'YYYY-MM-DD HH:mm:ss', tzinfo='local')) # (推薦) print('-------------') # 時(shí)間戳 print(local.timestamp) # 時(shí)間戳 print(arrow.get('1509120000', tzinfo='local')) # 時(shí)間戳字符串,轉(zhuǎn)換為本時(shí)區(qū)的時(shí)間 # 時(shí)間轉(zhuǎn)為字符串,輸出(格式化) print(local.format("YYYY-MM-DD")) print(local.format("YYYY-MM-DD HH:mm:ss")) print(local.replace(minutes=-1).humanize(locale='zh')) # 本地化個(gè)性時(shí)間短語: 剛才,1分鐘前,1天前,等 ?。▃h_tw 更多語言的支持,去查看arrow/locales.py)
python的arrow庫的使用暫時(shí)介紹到這里,下篇介紹python處理數(shù)據(jù)的pandas庫,讓你能夠輕松的處理python中復(fù)雜而海量的數(shù)據(jù)。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別
這篇文章主要介紹了Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03python設(shè)置windows桌面壁紙的實(shí)現(xiàn)代碼
每天換一個(gè)壁紙,每天好心情。喜歡的朋友可以參考下2013-01-01python常量折疊基礎(chǔ)知識(shí)點(diǎn)講解
在本篇文章里小編給大家整理的是一篇關(guān)于python常量折疊基礎(chǔ)知識(shí)點(diǎn)講解,對(duì)此有興趣的朋友可以跟著學(xué)習(xí)下。2021-02-02PyTorch中的Subset類簡(jiǎn)介與應(yīng)用示例代碼
在深度學(xué)習(xí)框架PyTorch中,torch.utils.data.Subset是一個(gè)非常有用的類,用于從一個(gè)較大的數(shù)據(jù)集中選擇一個(gè)子集,本文將介紹Subset的概念、基本用法以及一些實(shí)際應(yīng)用示例,感興趣的朋友一起看看吧2024-08-08Python爬蟲——爬取豆瓣電影Top250代碼實(shí)例
這篇文章主要介紹了Python爬取豆瓣電影Top250實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04