Python arrow 更好的日期时间模块
本文介绍Python中轻量级的arrow日期时间库,相比内置datetime模块,它提供了更人性化的API来创建、操作和转换日期时间。内容涵盖安装方法、获取当前时间、格式转换、时间戳处理、数据提取及时间修改等操作,帮助开发者简化复杂的日期时间处理逻辑。
Python标准库中提供了time和datetime等模块,它们具备完整的日期、时间及时区转换功能。然而,这些模块的方法繁多且记忆成本高,日常使用中常涉及繁琐的格式转换,例如时间戳与字符串互转,每次使用往往需要查阅文档。是否存在一款使用更直观、人性化的日期时间处理库?本文将介绍arrow库。
arrow是一个专为处理时间和日期设计的轻量级Python库。它提供了一种合理且易用的方式,用于创建、操作、格式化以及转换日期、时间和时间戳,能够轻松生成带有时区信息的日期和时间实例。
可通过执行pip install arrow命令进行安装。
arrow模块的使用
获取arrow对象
Arrow能够灵活地将多种格式的时间数据转换为Arrow对象,具体示例如下:
import arrow
print(repr(arrow.Arrow(2021, 8, 23, 8)))
print(repr(arrow.get(2021, 8, 23, 8, 40)))
print(repr(arrow.get('2021-08-23 09:00')))
print(repr(arrow.get('2021.08.23')))
print(repr(arrow.get('23/2012/08', 'DD/YYYY/MM')))
执行结果如下:

上述几种方式均可将字符数据转换为arrow对象,转换过程十分灵活。此外,还支持将时间戳直接转换为arrow对象。
print(repr(arrow.get(1629683393.6558669)))
获取当前时间
utc_time = arrow.utcnow()
local_time = arrow.now()
print(utc_time)
print(local_time)
通过utcnow()函数和now()函数分别可获取UTC时间和本地时间。若需获取特定时区的时间,可在调用now()时指定时区参数,例如arrow.now('US/Pacific')。
时间形式转换
在使用日期时间时,经常需要进行转换操作,例如将时间转换为指定格式的字符串或转换为时间戳等。
转换成时间字符串
now = arrow.now()
print(now)
print(now.format())
print(now.format("YYYY-MM-DD hh:mm:ss"))
print(now.format("YYYY-MM-DD"))
执行结果如下:

相比datetime模块中较为复杂的'%Y-%M-%D %h:%m:%s'格式化方式,arrow的格式化方式更加人性化且易于记忆。
转换成时间戳
可以使用t.timestamp属性将arrow对象转换为时间戳。
now.timestamp
获取数据
转换为Arrow对象后,可以方便地提取所需的各种时间数据。通过year、month、day、hour、minute、second、week等属性即可获取,例如:
now = arrow.now()
print(now.year)
print(now.month)
print(now.day)
print(now.hour)
print(now.minute)
print(now.second)
print(now.week)
修改时间
有时获取到时间后,需要对其进行修改,例如调整时区或修改具体时间,可通过以下方式实现:
now = arrow.now()
print(now.format("YYYY-MM-DD hh:mm:ss")) # 2021-08-23 10:11:04
now_utc = now.to("utc")
print(now_utc.format("YYYY-MM-DD hh:mm:ss")) # 2021-08-23 02:11:04
now1 = now.replace(day=31, hour=12)
print(now1.format("YYYY-MM-DD hh:mm:ss")) # 2021-08-31 12:11:04
now2 = now.shift(months=-2)
print(now2.format("YYYY-MM-DD hh:mm:ss")) # 2021-06-23 10:11:04
可以使用to()方法切换时区,使用replace()方法修改具体时间,使用shift()方法进行时间的推移操作。
与Python内置的datetime库类似,arrow对象也支持时间的大小比较及时间差计算。此外,该库还提供了许多其他实用功能,感兴趣的用户可查阅官方文档:Arrow: Better dates & times for Python — Arrow 1.1.1 documentation。
总结
本文介绍到此结束,希望能对您有所帮助。欢迎继续关注本站,获取更多技术内容!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













