Arrow,时间处理大师

文摘   2024-11-13 18:55   重庆  

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的功能远不止这些,像时间范围、解析网页时间格式、处理时间戳等等,都是它的拿手好戏。感兴趣的话可以去官方文档逛逛,里面有更多好玩的功能。


把这些基础用法掌握住,时间处理就不再是噩梦了!

CQTV新视界
重庆广电城市TV旗下优质内容品牌,感谢您的关注!
 最新文章