如何在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()並接受三個 (3) 個整數引數:當前年份 (int(get_today[0]))、當前月份 (int(get_today[1])) 和日期 (25)。宣告chqday,它使用timedelta並傳遞一個整數 (10),表示要從原始日期 (25) 中減去的日期數。宣告n_payday,它從chqday中減去payday。最後,將n_paydy的輸出傳送到終端。

方法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日期中減去一天。

更新於:2023年8月27日

27K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.