2017-09-26 69 views
0

我想一個月日期時間添加到我的當前日期時間,如果我這樣做,我只可以轉換日期時間到時間戳,然後添加時間戳空間的便捷方式:尋找添加時間空間

如果是二月份,我會加28 * 24 * 3600
如果是31天的太陽月份,我會添加31 * 24 * 3600
如果是30天的太陽月份,我會添加30 * 24 * 3600

然後再次轉換爲日期時間。

所以,有很多事情要做,python對開發人員來說很舒服,如果有更簡單更方便的方法來做到這一點?

回答

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