前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >任何时间都可以满足你的Arrow

任何时间都可以满足你的Arrow

作者头像
MeteoAI
发布2019-07-22 18:05:48
1.2K0
发布2019-07-22 18:05:48
举报
文章被收录于专栏:MeteoAIMeteoAIMeteoAI

python 中有2个常用的时间处理库:datetime, time。 涉及到的时间类型有4种:string, datetime, time tuple, timestamp。 想处理个时间就经常要在各种类型之间相互转换,转换到自己分分钟开始怀疑人生。

我不就是想处理个时间嘛,为何要如此难为我!能不能friendly一点!

直到发现了今天的主角Arrow,下面不得不好好安利一波了。

生成Arrow对象

使用的第一步当然是

import arrow

timestamp 转换为 Arrow 对象 -> arrow.get(timestamp) , 其中timestamp 的类型可以是整形,浮点型,也可以是字符型。

>>>arrow.get(1545127200)  
<Arrow [2018-12-18T10:00:00+00:00]>>>>arrow.get('1545127200')
<Arrow [2018-12-18T10:00:00+00:00]>

string 转换为 Arrow 对象 -> arrow.get(string, [format_string]) , 其中时间的顺序、格式可以按照自己的方式指定。

>>> arrow.get('2018/12/18 10:00', 'YYYY/MM/DD HH:mm')
<Arrow [2018-12-18T10:00:00+00:00]

>>>> arrow.get('12/18/2018 10:00', 'MM/DD/YYYY HH:mm')
<Arrow [2018-12-18T10:00:00+00:00]>

时间推移

arrow.shift() 可以获取某个时间之前的时间或者之后的时间。返回一个被移动后的 arrow 对象,原对象不变。

>>> t = arrow.get('2018/12/18 10:00', 'YYYY/MM/DD HH:mm')
>>> t
<Arrow [2018-12-18T10:00:00+00:00]

>>>> t.shift(days=-2)     #两天前
<Arrow [2018-12-16T10:00:00+00:00]

>>>> t.shift(weeks=-2)    #两周前
<Arrow [2018-12-04T10:00:00+00:00]

>>>> t.shift(months=2)    #两个月后
<Arrow [2019-02-18T10:00:00+00:00]

>>>> t.shift(years=1, months=1)   #一年零一个月后
<Arrow [2020-01-18T10:00:00+00:00]>

格式化输出

可以将Arrow 对象输出成任何你所需要的格式。完整的时间格式字符串可以参见https://arrow.readthedocs.io/en/latest/#tokens

>>> t.format()          
'2018-12-18 10:00:00+00:00'

>>> t.format('HH:ss YYYY.MM.DD')
'10:00 2018.12.18'

获取Arrow 对象属性

>>> t.year       #取年份
2018

>>> t.month      #取月份
12

>>> t.day        #取日期
18

>>> t.hour       #取小时
10

>>> t.timestamp  #取时间戳
1545127200

>>> t.naive
datetime.datetime(2018, 12, 18, 10, 0)    #取datetime格式

时区切换

涉及到时间的问题总逃不过时区的转换,不过不用担心,arrow 已经为我们设计好了解决方案。

>>> t                   #原时间为世界时
<Arrow [2018-12-18T10:00:00+00:00]

>>>> t.to('local')      #+8:00的北京时
<Arrow [2018-12-18T18:00:00+08:00]

>>>> t.to('US/Pacific') #转换为美国时区 
<Arrow [2018-12-18T02:00:00-08:00]

>>>> t.to('+04:00')     #转换为任意时区
<Arrow [2018-12-18T14:00:00+04:00]>

当然了Arrow 的功能远远不止此,还有很多功能需要大家在实际使用中取体会。

相信各位胖友们看完今天的文章一定已经开始输入 conda install arrow 了。 用过之后大家一定会告别 datetime,积极拥抱 arrow ,如果没有请联系我。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MeteoAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档