python时间模块哪个好arrow模块_Arrow-一个最好用的日期时间Python处理库

写过Python程序的人大都知道,Python日期和时间的处理非常繁琐和麻烦,主要有以下几个问题:

有众多的package,类和方法,包括time,datetime,pytz等等

经常需要各种转换,比如时间戳,structtime,时间字符串之间相互转换,localtime和utctime的转换

难以记忆,有违人性的时间格式化字符串%Y %M %m %D %d

基于以上几点,每次做时间处理的时候总是需要翻看以前的代码或者文档,可见此处Python做的有多烂,好了废话不多说,今天给大家介绍的这个arrow极大地解放了我等Python程序员的脑容量。

安装

pip install arrow

使用

获取当前时间

In [13]: import arrow

In [14]: t = arrow.utcnow()

In [15]: t

Out[15]:

In [19]: arrow.now()

Out[19]:

通过utcnow()和now()分别获取了utc时间和local时间,最终获取的是一个Arrow时间对象,通过这个对象我们可以做各种时间转换,后边会看到。

时间形式转换

我们经常需要转换时间对象,比如转换称timestamp,有时需要转换成特定格式的时间字符串。

转换成timestamp

In [13]: import arrow

In [14]: t = arrow.utcnow()

In [16]: t.timestamp

Out[16]: 1485937837

转换成时间字符串

In [23]: t = arrow.now()

In [24]: t.format()

Out[24]: u'2017-02-01 17:00:42+08:00'

In [25]: t.format("YYYY-MM-DD HH:mm")

Out[25]: u'2017-02-01 17:00'

怎么样?是不是感觉很简单,心里感觉轻舒了一口气!这里可以注意到格式化字符串非常人性化便于记忆,对不对?完整的时间格式字符串参见这里

从字符串转换成Arrow对象

In [20]: arrow.get("2017-01-20 11:30", "YYYY-MM-DD HH:mm")

Out[20]:

从时间戳转化为Arrow对象

In [26]: arrow.get("1485937858.659424")

Out[26]:

In [27]: arrow.get(1485937858.659424)

Out[27]:

注意这里无论传递的是时间戳字符串还是float类型的时间戳都可以进行转化,很人性有木有?

直接生成Arrow对象

In [28]: arrow.Arrow(2017, 2, 1)

Out[28]:

In [29]: arrow.get(2017, 2, 1)

Out[29]:

时间推移

时间推移就是要获取某个时间之前的时间或者之后的时间,比如要获取相对于当前时间前一天的时间。

In [30]: t = arrow.now()

In [31]: t

Out[31]:

In [33]: t.shift(days=-1) # 前一天

Out[33]:

In [34]: t.shift(weeks=-1) # 前一周

Out[34]:

In [35]: t.shift(months=-2) # 前两个月

Out[35]:

In [37]: t.shift(years=1) # 明年

Out[37]:

看是不是很简单,比用timedelta要简单明了多了,是不是?

更多请参考官方文档和Github

官方文档

Github

顺便说一句点赞是一种美德,Arrow第4000个赞就是我点的,哈哈。如果你觉的我的文章有帮助,也赶紧点个赞吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值