python 好用的时间模块 arrow

本文详细介绍Python中Arrow库的使用方法,包括日期格式化、时间偏移、时间戳转换及日期区间生成等功能,适用于需要处理时间日期数据的开发者。

转载自:诸葛老刘所有 https://blog.youkuaiyun.com/weixin_39791387/article/details/81566149 

In [1]: import arrow 

# 基准的时区,第一种写法 
In [2]: now = arrow.now('local') 
In [3]: now 
Out[3]: <Arrow [2018-11-06T12:23:53.594706+08:00]> 

# 切换时区的写法 
In [4]: now2 = arrow.now().to('local') 
In [5]: now2 
Out[5]: <Arrow [2018-11-06T12:24:18.191082+08:00]> 

# 格式化输出日期 
In [6]: now.format('YYYY-MM-DD') 
Out[6]: '2018-11-06' 

# 格式化输出日期及时分秒 
In [7]: now.format('YYYY-MM-DD HH:mm:ss') 
Out[7]: '2018-11-06 12:23:53' 

# 按天偏移(-1为昨天, 0为当天, 1为明天,以此类推) 
In [8]: now.shift(days=-1).format('YYYY-MM-DD') 
Out[8]: '2018-11-05' 

# 按月偏移(-1为上个月,0为本月, 1为下个月,以此类推) 
In [9]: now.shift(months=-1).format("YYYYMMDD") 
Out[9]: '20181006' 

# 返回当天是本周中的哪一天(下面2的意思即为周二) 
In [10]: now.format('d') 
Out[10]: '2' 

# 返回当天是本月中的哪一天 
In [11]: now.format('D') 
Out[11]: '6' 

# 获取当前时间戳 
In [12]: now.timestamp 
Out[12]: 1541478233 

# 将时间戳转为可读性的时间 
In [13]: stamp = 1533890211 
In [14]: arrow.get(stamp) 
Out[14]: <Arrow [2018-08-10T08:36:51+00:00]> 

# 将时间转为人性化的,比如:'an hour ago' 
In [15]: now.humanize() 
Out[15]: '16 minutes ago' 

# 当天的开始时间, 即:当日00:00:00 
In [16]: now.floor('day') 
Out[16]: <Arrow [2018-11-06T00:00:00+08:00]> 

# 获取当月最初的时间,即:当月1日00:00:00 
In [17]: now.floor('month') 
Out[17]: <Arrow [2018-11-01T00:00:00+08:00]> 

# 当天的结束时间, 即:当日23:59:59 
In [18]: now.ceil('day') 
Out[18]: <Arrow [2018-11-06T23:59:59.999999+08:00]> 

# 获取当月最后的时间,即:当月最后1日23:59:59 
In [19]: now.ceil('month') 
Out[19]: <Arrow [2018-11-30T23:59:59.999999+08:00]> 

# 从类似日期的字符串转为日期格式的数据 
In [20]: arrow.get('20181010', 'YYYYMMDD').format("YYYY-MM-DD") 
Out[20]: '2018-10-10' 

# 生成日期连续的日期区间 
In [21]: start = arrow.get('2018-09-01','YYYY-MM-DD') 
In [22]: end = arrow.get('2018-09-10','YYYY-MM-DD') 
In [23]: [dt for dt in arrow.Arrow.range('day',start,end)] 
Out[23]: [<Arrow [2018-09-01T00:00:00+00:00]>, <Arrow [2018-09-02T00:00:00+00:00]>, <Arrow [2018-09-03T00:00:00+00:00]>, <Arrow [2018-09-04T00:00:00+00:00]>, <Arrow [2018-09-05T00:00:00+00:00]>, <Arrow [2018-09-06T00:00:00+00:00]>, <Arrow [2018-09-07T00:00:00+00:00]>, <Arrow [2018-09-08T00:00:00+00:00]>, <Arrow [2018-09-09T00:00:00+00:00]>, <Arrow [2018-09-10T00:00:00+00:00]>] 

# 单位时间跨度的起止时间 
In [25]: now.span('hour') 
Out[25]: (<Arrow [2018-11-06T12:00:00+08:00]>, <Arrow [2018-11-06T12:59:59.999999+08:00]>) 
In [26]: now.span('month') 
Out[26]: (<Arrow [2018-11-01T00:00:00+08:00]>, <Arrow [2018-11-30T23:59:59.999999+08:00]>) 
In [27]: now.span('week') 
Out[27]: (<Arrow [2018-11-05T00:00:00+08:00]>, <Arrow [2018-11-11T23:59:59.999999+08:00]>) 
In [28]: now.span('day') 
Out[28]: (<Arrow [2018-11-06T00:00:00+08:00]>, <Arrow [2018-11-06T23:59:59.999999+08:00]>) 

# replace的使用方法, 结果前后对比 
In [29]: now.format('YYYYMMDD HH:mm:ss') 
Out[29]: '20181106 12:23:53' 
In [30]: now.replace(hour=0, minute=30,second=0).format('YYYYMMDD HH:mm:ss') 
Out[30]: '20181106 00:30:00' 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值