如何在 Python 中为日期添加天数?2025年1月5日 | 阅读6分钟 Python 提供了强大的内置模块来处理与日期和时间相关的操作。其中一项操作就是为日期添加天数,这在许多场景下都非常有用,例如计算任务的到期日期或安排事件。在本文中,我们将使用不同的方法在 Python 中为日期添加天数。 ![]() 使用 timedelta 类datetime 模块中的 timedelta 类允许您表示一个持续时间,并将其添加到 datetime 对象中以向前移动日期。 示例 1以下是修改当前日期天数的示例程序。 程序 输出 Original Date: 2023-12-30 16:57:01.837686 New Date (+5 days): 2024-01-04 16:57:01.837686 说明 我们从 datetime 模块导入了 datetime 和 timedelta 类,使用 timedelta() 类修改了 current_date,并打印了 current_date 和新日期。 示例 2让我们考虑一个使用 timedelta 的示例程序 程序 输出 The future date is: 2023-01-08 说明 首先,我们导入了所需的库。然后,我们创建了一个名为 'calculate_future_date' 的函数。该函数接受字符串格式的日期和整数格式要添加的天数。 接下来,我们使用 'datetime.strptime()' 方法创建了一个 datetime 对象,并使用 'timedelta()' 类将给定的天数加到它上面。之后,我们使用 'strftime()' 方法将修改后的 datetime 对象转换回字符串格式。 最后,该函数返回修改后的日期,然后我们将其打印出来。 使用 relativedelta 类dateutil 库扩展了 datetime 模块的功能。您可以使用 relativedelta 类进行更复杂的数据操作。 示例 1让我们再考虑一个修改日期的示例程序。 程序 输出 current date is: 2023-01-01 The future date is: 2023-01-08 说明 我们已经导入了必要的库。在此代码中,我们使用了 relativedelta 类来移动指定的日期。我们创建了一个函数,该函数接受两个输入 - 第一个输入是 'YYYY-MM-DD' 格式的日期,第二个输入是要移动的天数。该函数使用 datetime.strptime 将输入日期转换为 datetime 对象,然后应用 relativedelta 来移动指定的日期。 示例 2让我们考虑一个通过添加 10 天来修改当前日期的示例程序。 程序 输出 Current Date: 2023-12-31 17:06:30.823978 Date after adding 10 days: 2024-01-10 17:06:30.823978 说明 我们已经导入了修改日期的必要库。然后,我们定义了一个名为 "add_days_to_current_date" 的函数,该函数接受一个整数输入,用于通过添加一定天数来修改日期。借助 "relativedelta" 函数,我们指定了要添加到当前日期的天数。最后,我们打印了原始日期和修改后的日期,以查看差异。 使用 NumPy 库NumPy 是 Python 中一个非常有影响力的库,主要用于数值运算。虽然 NumPy 没有像 relativedelta 那样用于管理日期的特定函数,但它仍然可以与 datetime 模块一起用于执行基本日期操作。 程序输出 Original Start Date: 2023-04-20 Date after adding 30 days: 2023-05-20 说明 在此示例中,我们导入了 NumPy 库来执行日期修改。我们创建了一个名为 `calculate_new_date` 的函数,该函数接受一个字符串格式的起始日期和一个整数格式要添加的天数。然后,我们使用 `numpy.datetime64` 创建了一个 NumPy datetime 对象。接下来,我们使用 `numpy.timedelta64()` 将指定的日期加到起始日期上。最后,我们使用 `numpy.astype` 将结果转换为 Python 中的普通 datetime 对象,并打印了起始日期和新日期。 使用 Arrow 库Arrow 库提供了一个用户友好的 API 来处理日期和时间。它简化了常见操作并提高了日期操作的可读性。 程序输出 Current Date: 2023-12-31T17:31:26.204416+00:00 Date after adding 5 days: 2024-01-05T17:31:26.204416+00:00 说明 在上面的示例程序中,我们导入了 "arrow" 模块来为当前日期添加天数。首先,我们使用 "arrow.now()" 方法创建了当前日期。接下来,我们使用 "shift()" 方法为当前日期添加了 5 天。最后,我们打印了当前日期和添加 5 天后的日期。 使用 Pandas 库pandas 库广泛用于数据操作和分析。它拥有强大的 Timestamp 对象和各种与时间相关的函数。 示例让我们考虑一个例子 程序 输出 Original DataFrame: original_date 0 2023-01-01 12:00:00 DataFrame after adding 5 days: original_date new_date 0 2023-01-01 12:00:00 2023-01-06 12:00:00 说明 在此示例程序中,我们导入了 pandas 库,并创建了一个只有一个名为 'original_date' 列的 pandas DataFrame,该列包含一个 datetime 值。然后,我们使用 pd.to_datetime 函数将 'original_date' 列转换为 datetime 格式。之后,我们使用 pd.to_timedelta 为 'original_date' 列添加了 5 天,这创建了一个名为 'new_date' 的新列,其中包含更新后的日期。最后,我们打印了原始日期和新日期。 结论Python 中有各种库可以用来为日期添加天数。一些常用的库包括内置的 `datetime` 模块以及 NumPy 和 pandas 等外部库。 `datetime` 模块使用 `timedelta` 类提供了一种简单的方法来执行日期算术。另一方面,NumPy 的 `datetime64` 和 `timedelta64` 类型提供了更大的灵活性和对日期的有效数值运算。 如果您需要高级 DataFrame 结构来轻松操作 datetime 列,您可以使用 pandas。它提供了 `pd.to_datetime` 和 `pd.to_timedelta` 等函数来实现此目的。 库的选择取决于您的具体需求和任务的复杂性。每个库在 Python 中进行日期操作时都有其优点。 |
简介:只需几个简单的步骤,您就可以从命令行运行 Python 函数。首先,编写一个 Python 脚本(.py 文件),该脚本调用所需的函数。确保函数定义对齐且缩进正确。,然后启动命令行界面...
阅读 3 分钟
当使用 Python 打开文件时,'b' 修饰符有什么作用? 简介:在本教程中,我们将学习使用 Python 打开文件时的 'b' 修饰符。如果我们使用 b 修饰符在 Python 中打开文件。使用“b”修饰符来...
阅读 4 分钟
? Python 正则表达式(或 regex)是操作字符串和匹配模式的强大工具。它们允许您指定要在文本中查找的模式,提取特定数据或根据预定义的标准分割字符串。当字符串由多个分隔符分割时,...
阅读 3 分钟
在这个问题中,我们给定一个二叉树。我们必须找到这个给定二叉树的一个子树,该子树也满足被归类为二叉搜索树的要求。最后,我们必须返回该二叉搜索树的大小...
阅读 4 分钟
极小化极大算法是不同领域中的一种决策规则,例如人工智能、决策理论、博弈论、统计学和哲学。它旨在在最坏情况(最大损失)下最小化潜在损失。极小化极大算法是一种用于做出决策的递归算法...
7 分钟阅读
图像处理是改变数字图像以获取洞察力、增强视觉质量或实现自动化分析的过程。通过 Python,它现在成为处理、分析和从视觉数据中提取深刻见解的可行方法,Python 已发展成为一种现代工具。Python...
阅读 6 分钟
Python 是一种高级、解释型编程语言,以其可读性和易用性而闻名。由 Guido van Rossum 创建,并于 1991 年首次发布,Python 支持多种编程范式,以及过程式、面向对象和实用编程。它利用动态类型和垃圾回收,并且...
阅读 3 分钟
在 Python Web 开发方面,Django 和 Flask 等框架最值得关注。然而,如果你急需一个轻巧、简单但功能强大的工具,请注意 CherryPy。CherryPy 本质上是一个 Web...
阅读 4 分钟
引言 计算机视觉中一种估计一系列图片或视频帧中物体运动的方法称为稠密光流。与跟踪特定特征或位置的传统光流不同,稠密光流确定每个像素的速度...
阅读 3 分钟
数据库管理简介 管理数据库是构建任何应用程序的基本部分。但是,当您的应用程序增长时,更改数据库结构可能会变得具有挑战性。这就是 Alembic 的用武之地,它使我们能够更轻松地编写复杂的查询。Alembic 是一个...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India