You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将日期转换为人性化可读格式(如明天、2天前等)?是否有现成工具包?

推荐两个现成的Python工具包实现日期转人性化可读格式

当然有现成的工具包能帮你省去自定义判断的麻烦!你提到的dateparser是做人性化字符串转日期的,而要实现反向的日期转人性化字符串,这两个库非常好用:

1. Arrow

Arrow是一个功能强大的日期时间处理库,自带的humanize()方法完美契合你的需求,能自动生成类似「Yesterday」「Tomorrow」「Last Sunday」「In 3 days」这样的描述。

安装

pip install arrow

使用示例

from datetime import date, timedelta
import arrow

today = date.today()
for d in range(-10, 10, 1):
    target_date = arrow.get(today + timedelta(days=d))
    # humanize方法默认输出相对距离,加上only_distance=False会包含具体日期名称(比如周几)
    human_readable = target_date.humanize(only_distance=False)
    # 针对"day after tomorrow"这种特殊需求,加个小判断调整输出
    if (target_date - arrow.get(today)).days == 2:
        human_readable = "Day after Tomorrow"
    print(f"{target_date.date()} ({d}): {human_readable}")

这个示例的输出和你自定义代码的结果几乎一致,仅需一行小判断就能匹配「Day after Tomorrow」的特殊格式,其余场景Arrow都能自动处理。

2. Humanize

Humanize是专门用来生成人性化文本的轻量库,其中的日期相关方法也能实现你的需求。

安装

pip install humanize

使用示例

from datetime import date, timedelta
import humanize

today = date.today()
for d in range(-10, 10, 1):
    target_date = today + timedelta(days=d)
    diff_days = (target_date - today).days
    
    if abs(diff_days) <= 1:
        human_readable = humanize.naturalday(target_date)
    elif diff_days == 2:
        human_readable = "Day after Tomorrow"
    elif diff_days == -2:
        human_readable = "2 days ago"
    elif abs(diff_days) < 4:
        human_readable = humanize.relativize_date(target_date, today)
    elif abs(diff_days) <=7:
        prefix = "Last" if diff_days <0 else "Next"
        human_readable = f"{prefix} {target_date.strftime('%A')}"
    else:
        human_readable = f"On {target_date.strftime('%d-%m-%Y')}"
    
    print(f"{target_date} ({d}): {human_readable}")

Humanize更轻量化,但需要你补充少量逻辑来覆盖「Last/Next + 周几」这类场景,适合对包体积有要求的场景。

总结

如果你想要最省心的解决方案,Arrow是首选,它的humanize()方法几乎能覆盖你所有的需求,仅需少量调整就能完全匹配你的自定义逻辑;如果追求轻量,Humanize也能满足需求,只是需要补充一些周几相关的判断。

内容的提问来源于stack exchange,提问作者ujjaldey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 14:17:39