查看原文
其他

Arrow日期时间处理库

大邓 大邓和他的Python 2022-07-09

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自己的日期类型

安装

  1. !pip3 install arrow

  1. Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple

  2. Collecting arrow

  3. [?25l Downloading https://pypi.tuna.tsinghua.edu.cn/packages/cc/f5/f618f8423fe674a60461e58683edfeead93f4bbf95b9fca0e9699e765b35/arrow-0.15.2-py2.py3-none-any.whl (40kB)

  4. [K |████████████████████████████████| 40kB 2.6MB/s eta 0:00:011

  5. [?25hRequirement already satisfied: python-dateutil in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from arrow) (2.8.0)

  6. 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)

  7. Installing collected packages: arrow

  8. Successfully installed arrow-0.15.2

获取日期

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

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

  • arrow.get(datestr, datefmt)

  1. import arrow


  2. now = arrow.utcnow()

  3. print(now)

  4. print(arrow.get('2013-05-11', 'YYYY-MM-DD'))

  1. 2019-10-13T08:40:59.289458+00:00

  2. 2013-05-11T00:00:00+00:00

  1. print(arrow.get('June was born in May 1980', 'MMMM YYYY', locale='en'))

  1. 1980-05-01T00:00:00+00:00

Arrow类的方法和属性

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

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

  • Arrow.timestamp 转化为时间戳

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

  1. now.shift(hours=-1)

  1. <Arrow [2019-10-13T07:32:51.357522+00:00]>

前一个月

  1. utc.shift(months=-1)

  1. <Arrow [2019-09-13T08:27:37.736815+00:00]>

时间戳

  1. local.timestamp

  1. 1570955385

设定日期格式

Arrow.format(fmt)

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

  1. local.format('YYYY-MM-DD HH:mm:ss')

  1. '2019-10-13 16:29:45'

说人话

  1. import arrow


  2. past = arrow.now().shift(years=-1)

  3. past.humanize(locale='en_us')

  1. 'a year ago'

  1. future = arrow.now().shift(hours=2)

  2. future.humanize(locale='zh_cn')

  1. '2小时后'


近期文章

python爬虫与文本数据分析 系列课

pip安装问题解决办法

计算社会经济学

tabulate:好看的字符串表格库

如何理解pandas中的transform函数

免费视频课《Python快速入门》

初学Python常见异常错误

Python 函数式编程指北,不只是面向对象哦

一行pandas代码生成哑变量

顺利开班 | python爬虫分析2019年杭州国庆工作坊顺利开班

圆满落幕 | Python 爬虫分析杭州国庆工作坊圆满落幕

文本数据分析文章汇总(2016-至今)


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


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存