一篇文章帶你詳細了解python中一些好用的庫
時間庫—arrow
使用背景
日期時間處理在實際應(yīng)用場景中無處不在,所以這也成了編程語言中必不可少的模塊,Python 也不例外。但是,你知道在Python中有多少個相關(guān)的模塊嗎?datetime、time、calendar、 dateutil、 pytz 等等。 你知道有多少種數(shù)據(jù)類型嗎?date、time、datetime、tzinfo、timedelta 等等。
博主在一次需求中遇到需要統(tǒng)計近幾個月間的數(shù)據(jù),前端傳給我的是當(dāng)前的時間戳,要通過時間戳來往前推三個月,或者四個月,半年的時間,如果只能通過加減時間的話就會變得很麻煩,所以想到了使用python的時間庫----arrow
在介紹時間庫之前,我們來看一看python的各個時間格式間是如何轉(zhuǎn)換的

不管怎樣,你終究還是要熟練這些模塊和API操作的,記不住沒關(guān)系,至少你都要手動敲幾遍,下次遇到時要能做到翻看文檔能快速定位到某個類某個方法是做什么用、怎么用。
但今天我要強烈安利給你的這個時間日期庫:Arrow。它的靈感來自于 requests 庫。將所有繁雜的東西全部隱藏于身后,留給你的是 for humans 接口。充分詮釋了 keep it simple and stupid 這句話的含義。
安裝arrow
pip install arrow
arrow使用
- 獲取當(dāng)前時間

- 獲取不同時間格式

游標(biāo)卡尺shift
這個是arrow中我認為最好用的一個屬性,他可以讓你隨便將時間進行向前或者向后的推移,基本可以滿足你所有關(guān)于時間上推算的操作,抓緊用起來吧
- 向后推算時間

- 向前推算時間

- humanize
humanize 方法是相對于當(dāng)前時刻表示為“多久以前”的一種可讀行字符串形式,默認是英文格式,指定 locale 可顯示相應(yīng)的語言格式。

- format

獲取arrow對象
- get方法是最好用的獲取arrow對象的方式
# 不帶參數(shù),等價與 utcnow()
>>> arrow.get()
<Arrow [2018-08-24T07:11:50.528742+00:00]>
# 接受時間戳參數(shù)
>>> arrow.get(1535113845)
# 接受一個datetime對象
>>> arrow.get(datetime(2018,8,24))
<Arrow [2018-08-24T00:00:00+00:00]>
# 接收一個date對象
>>> 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)換和時區(qū)修改
# 字符串轉(zhuǎn)時間
print(arrow.get('2017-10-28T00:00:00+0800'))
# print(arrow.get('2017-10-28', 'YYYY-MM-DD')) # 字符串轉(zhuǎn)時間(不推薦這樣用,沒有設(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('-------------')
# 時間戳
print(local.timestamp) # 時間戳
print(arrow.get('1509120000', tzinfo='local')) # 時間戳字符串,轉(zhuǎn)換為本時區(qū)的時間
# 時間轉(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')) # 本地化個性時間短語: 剛才,1分鐘前,1天前,等 ?。▃h_tw 更多語言的支持,去查看arrow/locales.py)
python的arrow庫的使用暫時介紹到這里,下篇介紹python處理數(shù)據(jù)的pandas庫,讓你能夠輕松的處理python中復(fù)雜而海量的數(shù)據(jù)。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信