python之時間操作利器模塊----arrow

可能你已經被datetime和time模塊繞暈 不如來看看arrow有多麼好

獲取當前時間    arrow.utcnow(), arrow.now()

In [15]: t = arrow.now()
In [17]: t.datetime
Out[17]: datetime.datetime(2019, 3, 22, 21, 39, 0, 223147, tzinfo=tzlocal())

In [18]: type(t)
Out[18]: arrow.arrow.Arrow

In [19]: str(t.datetime)
Out[19]: '2019-03-22 21:39:00.223147+08:00'

In [20]: str(t.datetime)[:9]
Out[20]: '2019-03-2'

將時間戳轉化爲arrow對象    arrow.get(timestamp)  

In [46]: start = arrow.get(2017,1,1,00,00,00)

In [47]: start
Out[47]: <Arrow [2017-01-01T00:00:00+00:00]>

In [48]: end = arrow.get(2018,1,1,0,0,0)

In [49]: end
Out[49]: <Arrow [2018-01-01T00:00:00+00:00]>

將字符串轉換爲arrow對象    arrow.get(string[,format_string])

In [52]: arrow.get('2018-03-22 23:35:34')
Out[52]: <Arrow [2018-03-22T23:35:34+00:00]>

可以從字符串中通過格式參數搜索時間 

In [13]: arrow.get('june waw born in May 1999', 'MMMM YYYY')
Out[13]: <Arrow [1999-05-01T00:00:00+00:00]>

arrow對象屬性    datetime,timestamp,naive,tzinfo

In [54]: t.datetime
Out[54]: datetime.datetime(2019, 3, 22, 21, 39, 0, 223147, tzinfo=tzlocal())

In [55]: t.timestamp
Out[55]: 1553261940

In [58]: t.tzinfo
Out[58]: tzlocal()

In [59]: t.naive
Out[59]: datetime.datetime(2019, 3, 22, 21, 39, 0, 223147)

獲取datetime對象的值


In [60]: t.year
Out[60]: 2019

In [62]: t.month
Out[62]: 3

In [63]: t.day
Out[63]: 22

In [64]: t.hour
Out[64]: 21

 

真的太方便啦!!!還有更酷的的

時間推移    a.shift(**kwargs)

       shift方法獲取某個時間之前或之後的時間,關鍵字參數爲years,months,weeks,days,hours,seconds,microseconds

 

In [65]: t.shift(weeks=-1)
Out[65]: <Arrow [2019-03-15T21:39:00.223147+08:00]>

In [66]: t.shift(days=20)
Out[66]: <Arrow [2019-04-11T21:39:00.223147+08:00]>

In [67]: t.shift(hours=1)
Out[67]: <Arrow [2019-03-22T22:39:00.223147+08:00]>

時間替換   a.replace(**kwargs)

       返回一個被替換後的arrow對象,原對象不變

In [68]: t.replace(year=2018)
Out[68]: <Arrow [2018-03-22T21:39:00.223147+08:00]>

In [69]: t
Out[69]: <Arrow [2019-03-22T21:39:00.223147+08:00]>

格式化輸出    a.format([format_string])

In [70]: t.format()
Out[70]: '2019-03-22 21:39:00+08:00'

In [71]: t.format('YYYY-MM-DD HH-MM-SS')
Out[71]: '2019-03-22 21-03-22'

最牛的是這個人性化輸出    a.humanize()

In [72]: t.humanize()
Out[72]: '2 hours ago'

最後是一個小小的總結:

感謝lcebergu : 博客地址

官方文檔在這:官方文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章