如何使用Arrow时间库(arrow,python,编程语言)

时间:2024-05-06 16:32:58 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

DateParser 和 Dateutil

这是两款比较友好的用于处理各种时间格式的第三方库,它能将各种奇怪写法的时间转换成标准的时间格式,比如:

#-*-coding:utf-8-*-#@Time:2020-12-0516:46importtimeimportdateparserfromdateutilimportparserprint(dateparser.parse("2020/11/75:01:08"))print(parser.parse("2020"))

碰到个需求

最近在做一些自动化文件导出的时候,由于有一些平台有导出的数量限制,比如某某平台如果所选时间是半年,然后累计数据量达到 50w,就会导出失败。

对于这种情况就要做一下时间切分,比如可以分为按月,甚至按周来进行导出,也就是 rangeTime。

当在 Google 上搜索 Python time 或者 Datetime 切分时间的时候发现并没有什么结果,然后就会想起有个更牛的处理时间的库,也就是 Arrow 了。

很多的博客对 Arrow 的讲解也都是一带而过,贴出官方的例子,并没有应用于实际的项目,所以更多 Arrow 的用法也就没有提到。

如何使用Arrow时间库

Arrow

和 DateParser 一样,Arrow 底层也是用 datetime 封装的,在特定的地方可以和 datetime 进行交互。

一些用法展示:

#-*-coding:utf-8-*-#@Time:2020-12-0516:46i=arrow.now()#i.replace(day=1)替换时间为1号#i.shift(months=-1)偏移量,往前推一个月#i.format('YYYY-MM-DD')转换为你想要的时间格式print(i.shift(days=-30).format('YYYY-MM-DD'))print(i.shift(months=-3).format('YYYY-MM-DD'))#配合使用,链式法则print(i.replace(day=1).shift(months=-1).format('YYYY-MM-DD'))print(i.replace(day=1).shift(months=-1).format('YYYY-MM-DDHH:mm:ss'))

回到解决刚才的那个需求, Arrow 的时间区间属性可以在一段时间中根据不同时间粒度来进行切分,来达到我们的需求。

#-*-coding:utf-8-*-#@Time:2020-12-0516:46importarrow#开始于当前时间,往前推120天end=datetime.datetime.now()start=end+datetime.timedelta(days=-120)#获取120内的时间范围,以月划分deftimeYmdRange(start=start,end=end):tRange=[]forrinarrow.Arrow.span_range('months',start,end):qTime=[i.format('YYYY-MM-DD')foriinr]tRange.append(qTime)returntRange#获取120内的时间范围,以周划分deftimeWeekRange(start=start,end=end):tRange=[]forrinarrow.Arrow.span_range('weeks',start,end):qTime=[i.format('YYYY-MM-DD')foriinr]tRange.append(qTime)returntRange#自定义时间格式,按月划分,结果为202011deftimeMonthRange(start=start,end=end):tRange=[]forrinarrow.Arrow.range('months',start,end):qTime=r.format('YYYYMM')tRange.append(qTime)returntRangeforrintimeHmsRange(start,end):print(','.join(r))print(timeWeekRange())
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何使用Arrow时间库的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Go语言中怎么实现结构体反射下一篇:

2 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18