[Python] 如何從日期中減去一天?


Answers

減去datetime.timedelta(days=1)

Question

我有一個Python datetime.datetime對象。 減去一天的最佳方式是什麼?




當我想要計算上個月的第一個/最後一天或其他相對timedeltas等時,我也喜歡使用另一個很好的函數......

dateutil函數中的dateutil函數(對datetime lib的強大擴展)

import datetime as dt
from dateutil.relativedelta import relativedelta
#get first and last day of this and last month)
today = dt.date.today()
first_day_this_month = dt.date(day=1, month=today.month, year=today.year)
last_day_last_month = first_day_this_month - relativedelta(days=1)
print (first_day_this_month, last_day_last_month)

>2015-03-01 2015-02-28



只是為了闡述一個備用方法和一個有用的用例:

  • 從當前日期時間減去1天:
from datetime import datetime, timedelta
print datetime.now() + timedelta(days=-1)  # Here, I am adding a negative timedelta
  • 在案例中很有用 ,如果您想添加5天並從當前日期時間減去5小時。 即從現在起5天后的日期時間是多少,但是少了5個小時?
from datetime import datetime, timedelta
print datetime.now() + timedelta(days=5, hours=-5)

它可以類似地用於其他參數,例如秒,周等




Links