Arrow日期时间处理库

Arrow是python中最友好的日期时间库,诸如对日期时间数据的创建、操纵、格式化、转化,arrow都可以搞定,而且接口对普通人来说很友好。

为什么不使用python内置模块,而是使用Arrrow?

python标准化库和其他第三方库都有提供日期时间处理操作,但是从应用角度来说,不够好用

  • 太多的库,选择困难。诸如datetime, time, calendar, dateutil, pytz等等

  • 太多的数据类型,记不住。诸如date, time, datetime, tzinfo, timedelta, relativedelta等等

  • 时区、时间戳转换晦涩难懂

  • 非结构日期处理 如“我生于1990腊月”

Arrow类的特性

  • 完全实现的datatime的直接替换

  • 支持python2和python3

  • 默认时区自动感知,使用UTC世界标准时间

  • 为许多常见的输入方案提供超简单的创建选项

  • 支持shift偏移量

  • 字符串日期的识别

  • 时区转换

  • 内置时间戳属性

  • diy自己的日期类型

安装

!pip3 install arrow
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple	
Collecting arrow	
[?25l  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/cc/f5/f618f8423fe674a60461e58683edfeead93f4bbf95b9fca0e9699e765b35/arrow-0.15.2-py2.py3-none-any.whl (40kB)	
[K     |████████████████████████████████| 40kB 2.6MB/s eta 0:00:011	
[?25hRequirement already satisfied: python-dateutil in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from arrow) (2.8.0)	
Requirement already satisfied: six>=1.5 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from python-dateutil->arrow) (1.12.0)	
Installing collected packages: arrow	
Successfully installed arrow-0.15.2

获取日期

  • arrow.utcnow() 获取世界标准时间

  • arrow.now() 当地时区的时间

  • arrow.get(datestr, datefmt)

import arrow	
now = arrow.utcnow()	
print(now)	
print(arrow.get('2013-05-11', 'YYYY-MM-DD'))
2019-10-13T08:40:59.289458+00:00	
2013-05-11T00:00:00+00:00
print(arrow.get('June was born in May 1980', 'MMMM YYYY', locale='en'))
1980-05-01T00:00:00+00:00

Arrow类的方法和属性

  • Arrow.to() 转化日期,如从utc转为local

  • Arrow.shift() 更改日期,向前或者向后偏移一段时间

  • Arrow.timestamp 转化为时间戳

  • Arrow.format() 设定日期, 例如 YYYY-MM-DD HH:mm:ss

now.shift(hours=-1)
<Arrow [2019-10-13T07:32:51.357522+00:00]>

前一个月

utc.shift(months=-1)
<Arrow [2019-09-13T08:27:37.736815+00:00]>

时间戳

local.timestamp
1570955385

设定日期格式

Arrow.format(fmt)

fmt日期的格式字符串,例如 YYYY-MM-DD HH:mm:ss

local.format('YYYY-MM-DD HH:mm:ss')
'2019-10-13 16:29:45'

说人话

import arrow	
past = arrow.now().shift(years=-1)	
past.humanize(locale='en_us')
'a year ago'
future = arrow.now().shift(hours=2)	
future.humanize(locale='zh_cn')
'2小时后'

近期文章

课件获取方式,请在公众号后台回复关键词“20191015

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值