您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何使用Arrow時間庫”,在日常操作中,相信很多人在如何使用Arrow時間庫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用Arrow時間庫”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
DateParser 和 Dateutil
這是兩款比較友好的用于處理各種時間格式的第三方庫,它能將各種奇怪寫法的時間轉換成標準的時間格式,比如:
# -*- coding: utf-8 -*- # @Time : 2020-12-05 16:46 import time import dateparser from dateutil import parser print(dateparser.parse("2020/11/7 5:01:08")) print(parser.parse("2020"))
碰到個需求
最近在做一些自動化文件導出的時候,由于有一些平臺有導出的數量限制,比如某某平臺如果所選時間是半年,然后累計數據量達到 50w,就會導出失敗。
對于這種情況就要做一下時間切分,比如可以分為按月,甚至按周來進行導出,也就是 rangeTime。
當在 Google 上搜索 Python time 或者 Datetime 切分時間的時候發現并沒有什么結果,然后就會想起有個更牛的處理時間的庫,也就是 Arrow 了。
很多的博客對 Arrow 的講解也都是一帶而過,貼出官方的例子,并沒有應用于實際的項目,所以更多 Arrow 的用法也就沒有提到。
Arrow
和 DateParser 一樣,Arrow 底層也是用 datetime 封裝的,在特定的地方可以和 datetime 進行交互。
一些用法展示:
# -*- coding: utf-8 -*- # @Time : 2020-12-05 16:46 i = arrow.now() # i.replace(day=1) 替換時間為 1 號 # i.shift(months=-1) 偏移量,往前推一個月 # i.format('YYYY-MM-DD') 轉換為你想要的時間格式 print(i.shift(days=-30).format('YYYY-MM-DD')) print(i.shift(months=-3).format('YYYY-MM-DD')) # 配合使用,鏈式法則 print(i.replace(day=1).shift(months=-1).format('YYYY-MM-DD')) print(i.replace(day=1).shift(months=-1).format('YYYY-MM-DD HH:mm:ss'))
回到解決剛才的那個需求, Arrow 的時間區間屬性可以在一段時間中根據不同時間粒度來進行切分,來達到我們的需求。
# -*- coding: utf-8 -*- # @Time : 2020-12-05 16:46 import arrow # 開始于當前時間,往前推 120 天 end = datetime.datetime.now() start = end + datetime.timedelta(days=-120) # 獲取 120 內的時間范圍,以月劃分 def timeYmdRange(start=start,end=end): tRange = [] for r in arrow.Arrow.span_range('months', start, end): qTime = [i.format('YYYY-MM-DD') for i in r] tRange.append(qTime) return tRange # 獲取 120 內的時間范圍,以周劃分 def timeWeekRange(start=start,end=end): tRange = [] for r in arrow.Arrow.span_range('weeks', start, end): qTime = [i.format('YYYY-MM-DD') for i in r] tRange.append(qTime) return tRange # 自定義時間格式,按月劃分,結果為 202011 def timeMonthRange(start=start,end=end): tRange = [] for r in arrow.Arrow.range('months', start, end): qTime = r.format('YYYYMM') tRange.append(qTime) return tRange for r in timeHmsRange(start, end): print(','.join(r)) print(timeWeekRange())
到此,關于“如何使用Arrow時間庫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。