如何从Python日期中减去一天?

如何从Python日期中减去一天?

更多Python相关文章,请阅读:Python 教程

介绍

在应用程序中跟踪日期和时间非常重要,因此必须使用可以修改日期和时间的模块。 Python中的DateTime模块处理日期和时间。 Python带有内置的datetime模块。

在进行任何数据修改之前,必须安装两个新库。

  • 使用arrow库快速检索日期和时间。
  • 使用Pandas库可以访问和使用DataFrame。

转到IDE控制台以安装这些库。在命令提示符处( )运行以下代码。本示例使用的终端的命令提示符由美元符号( )表示。您的终端提示可能会有所不同。

所使用的方法

  • time − 它显示与任何特定日期无关的时间,其属性为小时,分钟,秒,微秒和tzinfo。

  • timedelta − 用于操作日期。

  • date − 它显示根据格雷戈里历法的日期,其属性为年,月和日。

  • tzinfo − 它提供有关时区的信息。

  • datetime − 它是日期和时间的集合,其属性为年,月,日,小时,分钟,秒,微秒、和tzinfo。

语法

class datetime.timedelta(days=10, month ,hour, minute, second, microsecond, tzinfo)
Returns: Date

注意 − 如果我们没有指定默认值,整数将作为天数。

算法

  • 初始化一个字符串并使用today方法检索当前日期,使用split方法将其拆分成列表。

  • 声明一个新变量,调用datetime.date()并带有三个参数:当前年份,当前月份和日期。

  • 声明一个变量,使用timedelta并传递一个整数,该整数是要从原始日期中减去的天数。

  • 返回datetime.date()变量和timedelta变量的差异。

方法1:使用datetime.timedelta()

示例

此方法将当前日期作为字符串检索并将其拆分为列表。然后,设置当前日期(payday),并从中减去十(10)天(datetime.timedelta(10))以返回新日期。

#导入必要的函数
import datetime
from datetime import date
import pandas as pd
#将date.today的值存储在变量today中
today = str(date.today()).split('-')
#声明payday,调用datetime.date()并使用三(3)个整数参数:当前年份(int(get_today[0])),当前月份(int(get_today[1]))
payday= datetime.date(int(today[0]), int(today[1]), 25)
#声明chqday,使用timedelta并传递整数(10)
chqday = datetime.timedelta(10)
#声明n_payday,将payday减去chqday
n_payday= payday - chqday
#打印payday
print("Payday =",payday)

输出

Payday = 2022-11-25

代码解释

声明today可检索当前日期(yyyy-mm-dd),并将日期字符串分割为连字符(split(‘-‘))。这将当前日期作为字符串列表([‘2022’,’05’,’27’])返回。声称payday调用datetime.date(),并采用三个整数参数:当前年份(int(get_today [0])),当前月份(int(get_today [1]))和日期(25)。声明chqday使用timedelta并传递整数(10),这是要从原始日期(25)减去的天数。声明n_payday,将payday减去chqday。最后,n_paydy的输出发送到终端。

方法2:使用Pandas减去日期列

例子

如果你想确定两个日期之间的差异,但不想建立一个新的日期,该怎么办?在此示例中,两个日期从中相减,结果输出为天数差异。

#导入重要的函数
import datetime
from datetime import date
import pandas as pd
#将数据框的结果存储在df中
df = pd.DataFrame(columns=['hired', 'fired'])
#为数据框df添加两行数据,并将数据保存到相应的变量(df.hired或df.fired)中
df.hired = ['2022-09-07', '2022-10-29']
df.fired = ['2021-09-07', '2022-04-29']
#从这两行创建时间对象,并将其存储到上面指定的相应变量中
df.hired = pd.to_datetime(df.hired)
df.fired = pd.to_datetime(df.fired)
#将df.fired和df.hired的差异存储在diff中
diff = (df.fired - df.hired)
#打印diff
print(diff)

输出

0   -365 days
1   -183 days
dtype: timedelta64[ns]

代码解释

首先,生成一个具有招聘和解雇两列的DataFrame,并将结果保存到df中。接下来的两行代码会向DataFrame df中添加两行数据,并将数据保存到相应的变量(df.hired或df.fired)中。然后,从这两行代码中创建一个Datetime对象,并将其存储到上面提到的相关变量中。它对这两个日期进行减法运算,并将结果保存到diff中。

结论

datetime是一个包含年、月、日、小时、分钟、秒、微秒和tzinfo属性的日期和时间集合。timedelta()用于操作日期。通过计算timedelta和datetime.date变量之间的差异来返回所需的输出,即从Python日期中减去一天。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程