• 使用 Python Timedelta 月份计算日期


    在本篇文章中,我们将通过 timedelta 学习如何在 Python 中使用日期时间。 我们将了解如何计算当前日期或任何其他日期六个月后的日期。

    让我们深入了解一下!


    Python 日期时间函数

    好吧,首先,我们将了解日期时间函数的工作原理以及限制我们功能的缺点是什么。 您需要知道的第一件事是在代码中导入日期时间。

    import datetime
    
    • 1

    之后,您将创建日期时间的实例。 创建实例后,您可以使用其算术函数。

    您可以减去一天和一个月。 看看下面的代码。

    #instance of datetime
    date = datetime.datetime(2022,2,1)
    #subtracting 1 from the month
    date = date.replace(month=date.month-1)
    print(date)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出:

    2022-01-01 00:00:00
    
    • 1

    正如您在上面的代码中看到的,在算术函数的帮助下,我们从之前设置的日期中减去了一个月。 但这里有一个问题,如果我们尝试从上面的结果中减去一个月会怎么样?

    该代码会给我们一个错误。 看一看。

    date = date.replace(month=date.month-1)
    
    • 1

    输出:

        date = date.replace(month=date.month-1)
    ValueError: month must be in 1..12
    
    • 1
    • 2

    datetime 函数不允许我们使用算术函数并减去一整年,因为它不支持它。 同样,如果我们在当前日期位于 12 月的最后几天时添加 1 或 2,则会给出相同的错误。

    # if you add 1 in date, it will throw an error because it doesn't support it
    date= datetime.datetime(2022,12,1)
    date_= date.replace(month=date_1.month+1)
    
    • 1
    • 2
    • 3

    输出:

        date = date.replace(month=date.month+1)
    ValueError: month must be in 1..12
    
    • 1
    • 2

    那么,回到问题,我们如何计算从当前日期或任何其他日期算起六个月的日期? 答案在于使用relativedelta。


    使用 Python 中的relativedelta() 计算日期

    在我们继续在 Python 代码中使用relativedelta 之前,我们需要安装 dateutil 以从中导入relativedelta。 在命令提示符中运行以下命令来安装 dateutil。

    pip install python-dateutil
    
    • 1

    安装后,您需要从中导入relativedelta。

    from dateutil import relativedelta
    
    • 1

    之后,我们需要同时使用datetime和relativedelta来解决当前的问题。 看看下面的代码。

    date = datetime.datetime(2022,1,1)
    # created the instance of the datetime and set the current date as 2022,1,1
    
    • 1
    • 2

    现在,我们将创建relativedelta 的实例并将月份的值设置为1。

    r_date = relativedelta.relativedelta(months=1)
    
    • 1

    现在,我们需要做的就是从日期时间实例中减去relativedelta 实例。 它会给我们想要的答案。

    # if you subtract the relativedelta variable with the date instance, it will work correctly and change the year too.
    new_date = date - r_date
    print(new_date)
    
    • 1
    • 2
    • 3

    输出:

    2021-12-01 00:00:00
    
    • 1

    类似地,如果我们将日期加 1,就会得到所需的输出。

    现在我们可以使用这种技术来计算当前日期的任何日期。 这就回答了我们如何计算从当前日期算起六个月的日期。

  • 相关阅读:
    Non-zero exit code pycharm
    LET‘S BUILD A NEW ENTRY GATE FOR THE PALACE
    Django cookie 与 session
    SVN客户端使用详细
    MySQL调优之show profile 应用
    Docker:(十)consul注册中心、注册机
    实战项目: 负载均衡
    c++并发编程/多线程 thread 库
    冰箱“扩容”的战事,在今夏格外猛烈
    23、Plenoxels: Radiance Fields without Neural Networks
  • 原文地址:https://blog.csdn.net/fengqianlang/article/details/133863317