Python使用arrow库优雅地处理时间数据详解


Posted in Python onOctober 10, 2017

前言

大家应该都知道在很多时候我们不得不和时间打交道,但在Python标准库中处理时间的模块其实设计的不是很友好,为什么我会这么说?因为我相信大部分人几乎每次在处理时间数据时一而再,再而三的去查文档,比如时间和文本格式互转,时间增减等看起来非常基本的操作,在Python中处理起来并不简单。

最要命的是,在Python标准库中居然有两个模块处理时间,一个叫time,另外一个叫datetime,里面提供了类似的方法但是两个完全不是一回事。到这还没完,标准库里还有一个叫calendar的模块,也是用来处理时间的。

今天我不带大家去理解他们三者的关系,因为现在你记住了不代表你以后不会忘记。今天的主角是一个优雅到我不能放弃的时间处理库 - arrow。

简介

arrow是一个专门处理时间和日期的轻量级Python库,它提供了一种合理、智能的方式来创建、操作、格式化、转换时间和日期。

安装

pip install arrow

使用

我们直接看代码,注释既分割线。

>>> import arrow

# 获取当前时间
>>> utc = arrow.utcnow()
>>> utc
<Arrow [2017-05-11T21:23:58.970460+00:00]>

# 调整时间
>>> utc = utc.shift(days=+1, hours=-1)
>>> utc
<Arrow [2017-05-12T20:23:58.970460+00:00]>

# 修改时间
>>> utc.replace(hour=4, minute=40)
<Arrow [2017-05-12T04:40:58.970460+00:00]>

# 转换时区
>>> local = utc.to('US/Pacific')
>>> local
<Arrow [2017-05-11T13:23:58.970460-07:00]>

# 从文本转为时间对象
>>> arrow.get('2017-05-11T21:23:58.970460+00:00')
<Arrow [2017-05-11T21:23:58.970460+00:00]>

>>> arrow.get(1367900664)
<Arrow [2017-05-07T04:24:24+00:00]>

>>> arrow.get('June was born in May 1980', 'MMMM YYYY')
<Arrow [1980-05-01T00:00:00+00:00]>

# 获取时间戳
>>> local.timestamp
1368303838

# 格式化输出
>>> local.format()
'2017-05-11 13:23:58 -07:00'

>>> local.format('YYYY-MM-DD HH:mm:ss')
'2017-05-11 13:23:58'

>>> local.humanize()
'an hour ago'

# 转为标准库对象
>>> a.date()
datetime.date(2017, 5, 7)

>>> a.time()
datetime.time(4, 38, 15, 447644)

总结

我没有骗你吧?如果以后你的Python项目需要处理时间,请果断抛弃标准库,arrow将拯救你无数脑细胞。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

附上arrow官方文档,更多酷炫用法还是前往官网。

http://arrow.readthedocs.io/en/latest/

Python 相关文章推荐
Python 正则表达式(转义问题)
Dec 15 Python
Python脚本实现下载合并SAE日志
Feb 10 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 Python
Django使用HttpResponse返回图片并显示的方法
May 22 Python
python爬虫实例详解
Jun 19 Python
django 实现电子支付功能的示例代码
Jul 25 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
pytorch 指定gpu训练与多gpu并行训练示例
Dec 31 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 Python
python字典的元素访问实例详解
Jul 21 Python
Python使用getpass库读取密码的示例
Oct 10 #Python
Python 逐行分割大txt文件的方法
Oct 10 #Python
Python输出带颜色的字符串实例
Oct 10 #Python
python中使用正则表达式的连接符示例代码
Oct 10 #Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 #Python
python 上下文管理器使用方法小结
Oct 10 #Python
python中如何使用正则表达式的集合字符示例
Oct 09 #Python
You might like
简单介绍PHP非阻塞模式
2016/03/03 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
javascript 闭包疑问
2010/12/30 Javascript
javascript常用功能汇总
2015/07/05 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
小程序云开发实战小结
2018/10/25 Javascript
JS多个表单数据提交下的serialize()应用实例分析
2019/08/27 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
python抓取网页内容示例分享
2014/02/24 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python3多线程知识点总结
2019/09/26 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
浅谈Python协程
2020/06/17 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
铭立家具面试题
2012/12/06 面试题
会计系毕业个人自荐信格式
2013/09/23 职场文书
4s店总经理岗位职责
2013/12/31 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis