Delorean:让 Python 时间处理不再头疼

Python 里处理时间一直是个麻烦事。时区转换、时间计算、格式化输出,一不小心就掉坑里。Delorean 这个库就是专门解决这些问题的。

名字取自《回到未来》那台能穿越时间的车,寓意就是让开发者能轻松"穿越"到任何时间点。

正文顶部截图

解决什么问题

原生 Python 处理带时区的时间,要同时用 datetime 和 pytz,代码写起来很啰嗦:

from datetime import datetime
import pytz

est = pytz.timezone('US/Eastern')
d = datetime.now(pytz.utc)
d = est.normalize(d.astimezone(est))
return d

用 Delorean 就简洁多了:

from delorean import Delorean

d = Delorean()
d = d.shift('US/Eastern')
return d

三行搞定。不用手动调时区,不用记 normalize 和 astimezone 这些方法名,代码可读性也好得多。

底层设计

Delorean 站在 pytz 和 dateutil 这两个成熟库之上,没有重新发明轮子。pytz 负责时区数据,dateutil 负责日期计算,Delorean 在上层封装了一套更符合直觉的 API。

核心思路是减少开发者需要记忆的接口数量。原生 datetime 在不同场景下要用不同方法:创建用 now、utcnow、combine,转换用 astimezone、normalize、replace。Delorean 统一用构造方法和 shift 方法覆盖大部分场景。

核心功能

时间移位、时区转换、时间范围计算,这些是日常开发的高频场景。Delorean 把这些操作封装成链式调用,代码读起来像自然语言。

拿时区转换来说,传统做法要先把时间对象本地化,再转换目标时区,中间涉及 aware 和 naive 的概念,容易出错。Delorean 把流程简化成调用 shift 方法,参数传入目标时区名称就行。

时间加减运算也直接支持,传时间间隔对象即可。对日期做偏移或者计算时间差,语法都很简洁。

README区域截图

适合人群

任何用 Python 处理时间的开发者。项目涉及多个时区、需要频繁做时间计算、或者代码规范要求高可读性的团队,用 Delorean 能省不少事。

项目 1800+ Star,依赖只有 pytz 和 dateutil 两个,API 稳定,文档完整,可以直接用到生产环境。如果你被 datetime 坑过多次,值得一试。

util 两个,API 稳定,文档完整,可以直接用到生产环境。如果你被 datetime 坑过多次,值得一试。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐