寻找一种方便的方式来增加时间空间

时间:2017-09-26 11:58:21

标签: python datetime

我想在当前日期时间添加一个月份日期时间,如果我这样做,我只能将日期时间转换为时间戳,然后添加时间戳空间:

如果是2月,我会添加A 如果太阳月是31天,我会添加28 * 24 * 3600 如果是30天的太阳月,我将添加31 * 24 * 3600

然后再次转换为日期时间。

所以,有很多事情要做,如果有更简单,更方便的方法,python对开发人员来说很舒服吗?

2 个答案:

答案 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