不少時候咱們不得不和時間打交道,但在Python標準庫中處理時間的模塊其實設計的不是很友好,爲何我會這麼說?由於我相信大部分人幾乎每次在處理時間數據時一而再,再而三的去查文檔,好比時間和文本格式互轉,時間增減等看起來很是基本的操做,在Python中處理起來並不簡單。python
最要命的是,在Python標準庫中竟然有兩個模塊處理時間,一個叫time,另一個叫datetime,裏面提供了相似的方法可是兩個徹底不是一回事。到這還沒完,標準庫裏還有一個叫calendar的模塊,也是用來處理時間的。shell
今天我不帶你們去理解他們三者的關係,由於如今你記住了不表明你之後不會忘記。今天的主角是一個優雅到我不能放棄的時間處理庫 - arrow。測試
arrow是一個專門處理時間和日期的輕量級Python庫,它提供了一種合理、智能的方式來建立、操做、格式化、轉換時間和日期。spa
pip install arrow
咱們直接看代碼,註釋既分割線。設計
>>> import arrow # 獲取當前時間 >>> utc = arrow.utcnow() >>> utc <Arrow [2017-05-11T21:23:58.970460+00:00]> # 調整時間 >>> utc = utc.shift(days=+1, hours=-1) >>> utc <Arrow [2017-05-12T20:23:58.970460+00:00]> # 修改時間 >>> utc.replace(hour=4, minute=40) <Arrow [2017-05-12T04:40:58.970460+00:00]> # 轉換時區 >>> local = utc.to('US/Pacific') >>> local <Arrow [2017-05-11T13:23:58.970460-07:00]> # 從文本轉爲時間對象 >>> 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]> # 獲取時間戳 >>> 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' # 轉爲標準庫對象 >>> a.date() datetime.date(2017, 5, 7) >>> a.time() datetime.time(4, 38, 15, 447644)
我沒有騙你吧?若是之後你的Python項目須要處理時間,請果斷拋棄標準庫,arrow將拯救你無數腦細胞。code
附上arrow官方文檔,更多酷炫用法仍是前往官網。orm
關於做者:Python技術愛好者,目前從事測試開發相關工做,轉載請註明原文出處。對象
歡迎關注個人博客 https://betacat.online,你能夠到個人公衆號中去當吃瓜羣衆。ip