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

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

介绍

由于我们都知道,在需要跟踪日期和时间的应用程序中,修改日期和时间的模块是必不可少的。Python中的 ** DateTime** 模块处理日期和时间(Python日期/时间教程)。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()

示例

此方法将当前日期作为字符串获取,并将其拆分为一个列表。然后,配置当前日期(发薪日),并从同一日期中减去十(10)天(datetime.timedelta(10))来返回一个新日期。

#importing necessary functions
import datetime
from datetime import date
import pandas as pd
#storing the value of date.today in a variable today
today = str(date.today()).split('-')
#Declares payday which calls datetime.date() and takes three (3) integer arguments: current year (int(get_today[0])), current month (int(get_today[1]))
payday= datetime.date(int(today[0]), int(today[1]), 25)
#Declares chqday which uses timedelta and passes an integer, (10)
chqday = datetime.timedelta(10)
#Declares n_payday which subtracts payday from chqday
n_payday= payday - chqday
#printing the 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变量,从chqday中减去payday的结果。最后,将n_payday的输出发送到终端。

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

示例

如果你想确定两个日期之间的差异,但不想创建一个新的日期?在这个例子中,两个日期相减,结果以天数的差异输出。

#importing important functions
import datetime
from datetime import date
import pandas as pd
#outcome of dataframe is stored in df
df = pd.DataFrame(columns=['hired', 'fired'])
#two rows to the DataFrame df and save the data to the relevant variable (df.hired or df.fired)
df.hired = ['2022-09-07', '2022-10-29']
df.fired = ['2021-09-07', '2022-04-29']
#Datetime object is created from these two lines and stored to the relevant variable stated above
df.hired = pd.to_datetime(df.hired)
df.fired = pd.to_datetime(df.fired)
#storing the difference of df.fired and df.hired in diff.
diff = (df.fired - df.hired)
#printing the diff
print(diff)

输出结果

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

代码解释

首先,生成了一个带有招聘和解雇列的DataFrame。结果保存到 df 中。接下来的两行代码向DataFrame df 中添加了两行数据,并将数据保存到相关变量( df.hireddf.fired )中。然后从这两行数据创建了一个Datetime对象,并将其存储到上述相关变量中。它计算这两个日期的差,并将结果保存到diff变量中。

结论

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程