如何人性化 Delorean Datetime 对象

2024 年 8 月 29 日 | 阅读 3 分钟

在本教程中,我们将学习 Python 的 Delorean 模块,该模块用于简化 datetime 对象。我们需要 datetime 模块来处理不同的时间和日期。有时,这可能会有点复杂和具有挑战性,而 Python 中的 datetime 处理也不例外。Python 内置的 datetime 模块包含各种类,如 date、datetime、time、timezone 和 timedelta。

Delorean 库建立在 pytz 之上, pytz 是一个用于解决与时区相关问题的标准库。我们需要将其安装到本地系统才能使用该库。

安装

创建并激活虚拟环境,然后在终端中键入以下命令。

使用 humanize() 人性化 Delorean Datetime 对象

虽然 Epoch 时间戳非常精确,非常适合数字设备,但对人类来说却不够直观。我们需要对这些尺度有合理的认识。此外,我们通常只在某些情况下考虑日期,除非有极少数例外。大多数人可能不知道今天是几号,除非有大多数数字设备(从台式机到手机)内置的持续时钟和日历。

大多数时候,我们想知道给定日期的具体详细信息,例如,我们和朋友见面是什么时候?是 2022 年 8 月 15 日还是昨天?

Python 提供了 **humanize()** 函数,该函数接受一个日期作为参数,并将其转换为人们在传达事件发生时间时会使用的形式。让我们通过以下示例来理解:

示例 -

输出

25 years ago
24 years ago
24 years from now

此模块为注释事件之前和之后的时间提供了出色的功能。例如——我们可以通知用户接收通知,或者某个生日即将来临(下个月),并且我们可以显示确切的时间,如果事件已经过去 N 天。

我们可以使用 timedelta 来切换 N 天前的事件。我们将测量一个日期是否发生在当前日期之前的 N 天以上。让我们通过以下示例来理解:

示例 -

输出

Event 0 has occurred on 1997-11-13
Event 1 has occurred on 2015-12-02

上面的输出更加精确且人性化,我们可以说某个特定事件发生在某个特定日期。

使用 Delorean 人性化相对日期

Delorean 还提供了方便的功能,可以根据另一个日期来处理日期,从而节省大量时间,并使开发人员的生活比使用 time delta 更简单。通过组合 next_ 和 last_ 以及星期几、月份甚至年份,我们可以计算并创建 Delorean 对象。让我们通过以下示例来理解。

示例 -

输出

Friday next week:  Delorean(datetime=datetime.datetime(2022, 10, 28, 14, 20, 31, 261138), timezone='UTC')
Friday two weeks ago:  Delorean(datetime=datetime.datetime(2022, 10, 14, 14, 20, 31, 261138), timezone='UTC')
Two Mondays from now at midnight:  2022-11-07 00:00:00+00:00
This time next month:  Delorean(datetime=datetime.datetime(2022, 11, 25, 14, 20, 31, 261138), timezone='UTC')
This time next month:  2023-10-25 00:00:00+00:00

结论

本教程介绍了 Python 中的 Delorean 模块,以及如何使用 Python 中的 humanize() 函数来人性化 Delorean datetime 对象。Humanize date 是一个术语,用于将 datetime 实例转换为更人性化的格式——使用文字和相对时间框架。