我有一个Python datetime。datetime对象。减去一天的最好方法是什么?


当前回答

减去datetime.timedelta(天= 1)

其他回答

你可以使用timedelta对象:

from datetime import datetime, timedelta
    
d = datetime.today() - timedelta(days=days_to_subtract)

温馨箭头模块存在

import arrow
utc = arrow.utcnow()
utc_yesterday = utc.shift(days=-1)
print(utc, '\n', utc_yesterday)

输出:

2017-04-06T11:17:34.431397+00:00 
 2017-04-05T11:17:34.431397+00:00

减去datetime.timedelta(天= 1)

下面详细介绍一个有用的替代方法和用例:

从当前日期时间减去1天:

从datetime导入datetime, timedelta 打印datetime.now() + timedelta(days=-1) #这里,我添加了一个负的timedelta

在这种情况下很有用,如果您想从当前日期时间中添加5天并减去5小时。也就是说,距离现在5天但比现在少5小时的日期时间是什么?

从datetime导入datetime, timedelta 打印datetime.now() + timedelta(days=5, hours=-5)

它同样可以用于其他参数,例如秒,周等

也只是另一个很好的函数,我喜欢使用当我想计算,即上个月的第一天/最后一天或其他相对时间增量等. ...

dateutil函数的relativedelta函数(对datetime库的强大扩展)

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