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 : 博客地址

官方文档在这:官方文档

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