python第三方库:日期处理

在数据处理中,我们经常会碰到对时间格式化的问题,需要把一定的格式转换为标准的格式,需要处理一段时间的数据,在这个过程中,我们之前使用的都是python中的标准库datetime,但是它并没有提供一些常见的操作,这里介绍一个日期处理的第三方优秀库pytime

安装

库的地址在:

https://github.com/shinux/PyTime

安装时也非常的简单:

pip install pytime
时间格式化

对于时间格式的处理是在网络数据处理中一个重要的内容,我们可以使用datetime进行处理,但pytime为我们提供了很多的格式,可以很方便的进行处理。

如下对时间格式的字符串进行格式化为datetime

>>>pytime.parse('April 3rd 2015')
datetime.date(2015, 4, 3)
>>>pytime.parse('Oct, 1st. 2015')
datetime.date(2015, 10, 1)
>>>pytime.parse('NOV21th2015')
datetime.date(2015, 11, 21)
>>>
>>>pytime.parse('2015517')
datetime.date(2015, 5, 17)
>>>
>>>pytime.parse('5/17/15')
datetime.date(2015, 5, 17)
>>>
>>>pytime.parse('92-11-2')
datetime.date(1992, 11, 2)
>>>

对unix时间格式进行处理:

>>> pytime.parse(1536046253)
datetime.datetime(2018, 9, 4, 15, 30, 53)
在当前时间中的时间差

在网页或者客户端中,经常会出现这样的时间描述,几天前,几分钟前,但我们需要知道真正的时间是在什么时候,pytime 支持把这种格式的时间,直接转换为真实时间。

>>> pytime.before(datetime.now(),diff='2minu').strftime("%Y-%m-%d %H:%M:%S")
'2018-09-04 15:16:59'
>>> pytime.before(datetime.now(),diff='2d').strftime("%Y-%m-%d %H:%M:%S")
'2018-09-02 15:38:01'

同样的也用after的操作。

生成一段连续的时间段

在数据处理中,经常需要按照天为单位计算一段时间的活跃数据,在这个过程中,需要先生成一段时间的数据:

如下生成 '2018-8-1’到 '2018-9-1’之间的数据:

>>> pytime.daysrange('2018-8-1', '2018-9-1')
[datetime.date(2018, 9, 1), datetime.date(2018, 8, 31), datetime.date(2018, 8, 30), datetime.date(2018, 8, 29), datetime.date(2018, 8, 28), datetime.date(2018, 8, 27), datetime.date(2018, 8, 26), datetime.date(2018, 8, 25), datetime.date(2018, 8, 24), datetime.date(2018, 8, 23), datetime.date(2018, 8, 22), datetime.date(2018, 8, 21), datetime.date(2018, 8, 20), datetime.date(2018, 8, 19), datetime.date(2018, 8, 18), datetime.date(2018, 8, 17), datetime.date(2018, 8, 16), datetime.date(2018, 8, 15), datetime.date(2018, 8, 14), datetime.date(2018, 8, 13), datetime.date(2018, 8, 12), datetime.date(2018, 8, 11), datetime.date(2018, 8, 10), datetime.date(2018, 8, 9), datetime.date(2018, 8, 8), datetime.date(2018, 8, 7), datetime.date(2018, 8, 6), datetime.date(2018, 8, 5), datetime.date(2018, 8, 4), datetime.date(2018, 8, 3), datetime.date(2018, 8, 2), datetime.date(2018, 8, 1)]

同样的生成 一个礼拜,一个月的数据:

>>>pytime.this_week()
(datetime.date(2015, 5, 11), datetime.date(2015, 5, 18))

>>>pytime.next_week('2015-6-14')                         # 2015-6-14's next week for script
(datetime.date(2015, 6, 15), datetime.date(2015, 6, 23))

>>>pytime.last_week(pytime.mother(2013), True)           # 2013 Mother's Day's last week
(datetime.date(2013, 5, 13), datetime.date(2013, 5, 20))

>>>pytime.next_month('2015-10-1')
(datetime.date(2015, 11, 1), datetime.date(2015, 12, 1))
生成重要节日的日期
>>>pytime.father()              # Father's Day
datetime.date(2015, 6, 21)
>>>
>>>pytime.mother(2016)          # 2016 Mother's Day
datetime.date(2016, 5, 8)
>>>
>>>pytime.easter(1999)          # 1999 Easter
datetime.date(1999, 4, 4)

对日期的处理,还需要做很多的事情,pytime帮我们做了非常的多东西, 如果有一些特殊的需要,同样的可以在pytime的基础上继续进行扩展。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go2coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值