我想在当前日期时间添加一个月份日期时间,如果我这样做,我只能将日期时间转换为时间戳,然后添加时间戳空间:
如果是2月,我会添加A
如果太阳月是31天,我会添加28 * 24 * 3600
如果是30天的太阳月,我将添加31 * 24 * 3600
。
然后再次转换为日期时间。
所以,有很多事情要做,如果有更简单,更方便的方法,python对开发人员来说很舒服吗?
答案 0 :(得分:0)
您可以使用relativedelta:
from datetime import datetime
from dateutil.relativedelta import relativedelta
def addTimeSpace(ori_datetime, relative_date):
day = relativedelta(days=+1)
added_datetime = ori_datetime + relative_date
if ori_datetime.day > added_datetime.day:
added_datetime = added_datetime + day
return added_datetime
print(addTimeSpace(datetime.now(), relativedelta(years=+4, months=+1))) #there will output: 2021-10-26 20:00:53.222794
答案 1 :(得分:0)
您可以使用datetime.timedelta
:
from calendar import monthrange
from datetime import timedelta, datetime
def add_month(date):
days_in_month = monthrange(date.year, date.month)[1]
new_date = date + timedelta(days=days_in_month)
return new_date
print(add_month(datetime(2017, 1, 1)))
> 2017-02-01 00:00:00
print(add_month(datetime(2017, 2, 5)))
> 2017-03-05 00:00:00
或使用第三方库dateutil
:
from datetime import datetime
from dateutil.relativedelta import relativedelta
def add_month(date):
new_date = date + relativedelta(months=1)
return new_date
print(add_month(datetime(2017, 1, 1)))
> 2017-02-01 00:00:00
print(add_month(datetime(2017, 2, 5)))
> 2017-03-05 00:00:00