Arrow,时间处理大师
处理时间可太让人头疼了!不同格式的时间字符串、时区转换、时间计算…搞得我们焦头烂额。Python自带的datetime模块虽说能用,但用起来就像是在嚼木头。今天跟大家分享个超好用的库 - Arrow ,它让处理时间变得特别顺手。
装它贼简单,一行搞定:
pip install arrow
Arrow让创建时间变得超简单,啥格式都能处理:
import arrow
# 获取当前时间
now = arrow.now()
print(now) # 2024-11-09T10:30:45.123456+00:00
# 从字符串创建
time_str = “2024-01-15 08:30:00”
t1 = arrow.get(time_str)
print(t1) # 2024-01-15T08:30:00+00:00
# 指定格式创建
t2 = arrow.get(“15/01/2024”, “DD/MM/YYYY”)
print(t2) # 2024-01-15T00:00:00+00:00
温馨提示:Arrow默认用的是UTC时区,想用本地时间记得加上时区参数。
以前转时区老是搞不清楚,用Arrow转起来贼溜:
# 创建一个东京时间
tokyo_time = arrow.now('Asia/Tokyo')
print(tokyo_time)
# 转成纽约时间
ny_time = tokyo_time.to('America/New_York')
print(ny_time)
# 转成本地时间
local_time = tokyo_time.to('local')
print(local_time)
加减时间跟玩儿似的:
now = arrow.now()
# 加3天
future = now.shift(days=3)
print(future)
# 减2小时
past = now.shift(hours=-2)
print(past)
# 还能这么玩
next_week = now.shift(weeks=1, hours=2)
print(next_week)
有时候我们想显示“3分钟前”这种格式,Arrow也是小菜一碟:
import arrow
now = arrow.now()
past = now.shift(hours=-2)
# 英文显示
print(past.humanize()) # 2 hours ago
# 中文显示
print(past.humanize(locale='zh_CN')) # 2小时前
想要啥格式有啥格式:
now = arrow.now()
# 年月日
print(now.format('YYYY-MM-DD')) # 2024-11-09
# 带时分秒
print(now.format('YYYY-MM-DD HH:mm:ss')) # 2024-11-09 10:30:45
# 自定义格式
print(now.format('YY年MM月DD日 HH点mm分')) # 24年11月09日 10点30分
经常写代码处理时间的小伙伴们,Arrow绝对能让你事半功倍。它不光语法简单,还自带时区处理,关键是输出格式特别灵活。代码写起来特别爽,再也不用对着datetime的文档抓耳挠腮了。
温馨提示:用Arrow处理时间时,留意下时区问题,特别是跟其他系统对接的时候,时区不一致可能会导致时间差8小时。
Arrow的功能远不止这些,像时间范围、解析网页时间格式、处理时间戳等等,都是它的拿手好戏。感兴趣的话可以去官方文档逛逛,里面有更多好玩的功能。
把这些基础用法掌握住,时间处理就不再是噩梦了!