Use the timedelta() method in the datetime
module to add the number of days to the date, for example result_1 = date_1 timedelta(days=3)
. timedelta
The method can be passed a days parameter and adds the specified number of days to the date.
from datetime import datetime, date, timedelta # ✅ 将天数添加到日期 my_str = '09-24-2023' # ????️ (mm-dd-yyyy) date_1 = datetime.strptime(my_str, '%m-%d-%Y') print(date_1) # ????️ 2023-09-24 00:00:00 result_1 = date_1 + timedelta(days=3) print(result_1) # ????️ 2023-09-27 00:00:00 # ----------------------------------------------- # ✅ 将天数添加到当前日期 current_date = datetime.today() print(current_date) # ????️ 2022-06-20 09:42:22.341830 result_2 = current_date + timedelta(days=7) print(result_2) # ????️ 2022-06-27 09:43:09.084770 # ----------------------------------------------- # ✅ 使用 date 而不是 datetime date_3 = date(2023, 9, 24) print(date_3) # ????️ 2023-09-24 result_3 = date_3 + timedelta(days=3) print(result_3) # ????️ 2023-09-27 # ----------------------------------------------- # ✅ 将天数添加到当前日期(使用 date 而不是 datetime) date_4 = date.today() print(date_4) # ????️ 2022-06-20 result_4 = date_4 + timedelta(days=7) print(result_4) # ????️ 2022-06-27
Make sure to import the datetime or date
and timedelta
classes from the datetime
module.
When using this method, the month (and year) will roll over as necessary.
The first example uses the datetime.strptime()
method to obtain the datetime object corresponding to the provided date string and parse it according to the specified format.
Once we have the datetime
object, we can use the timedelta
class to add the number of days.
from datetime import datetime, timedelta my_str = '09-24-2023' # ????️ (mm-dd-yyyy) date_1 = datetime.strptime(my_str, '%m-%d-%Y') print(date_1) # ????️ 2023-09-24 00:00:00 result_1 = date_1 + timedelta(days=3) print(result_1) # ????️ 2023-09-27 00:00:00
The date string format in the example is mm-dd-yyyy
.
If we have a date string formatted differently, use this documentation table to find the format code you should pass as the second argument to the strptime()
method.
The second example adds the number of days to the current date.
from datetime import datetime, timedelta current_date = datetime.today() print(current_date) # ????️ 2022-06-20 09:42:22.341830 result_2 = current_date + timedelta(days=7) print(result_2) # ????️ 2022-06-27 09:43:09.084770
datetime.today()
Method returns the current local date and time.
The third example uses the date()
method instead of the datetime
method when adding days to a date. The
from datetime import date, timedelta date_3 = date(2023, 9, 24) print(date_3) # ????️ 2023-09-24 result_3 = date_3 + timedelta(days=3) print(result_3) # ????️ 2023-09-27
datetime.timedelta
method can be passed the number of days we want to add to the date
or datetime
object.
timedelta
The method can pass days, weeks, hours, minutes, seconds, milliseconds and microseconds as parameters.
All parameters are optional and default to 0.
It is best to only use keyword arguments in calls to the timedelta
class, as the order of the arguments can be confusing.
If we only need to extract the date after the operation, call the date()
method on the datetime
object.
from datetime import datetime, timedelta now = datetime.now() print(now) result = now + timedelta(days=5) print(result) print(result.date())
datetime.date
method returns a date object with the same year, month and day.
If we need to format the date in some way, use a formatted string literal.
from datetime import datetime, timedelta now = datetime.now() print(now) result = now + timedelta(days=6) print(result) print(result.date()) print(f'{result:%Y-%m-%d %H:%M:%S}')
Formatted string literals
(f-strings)
Let us include an expression in a string by prefixing it withf
.
Make sure to enclose the expression in braces - {expression}
.
Formatted string literals also enable us to use the format specification mini-language within expression blocks.
The fourth example adds the number of days to a date
object representing the current date. The
from datetime import date, timedelta date_4 = date.today() print(date_4) result_4 = date_4 + timedelta(days=7) print(result_4)
date.today
method returns a date
object representing the current local date.
The above is the detailed content of How to add days to date in Python. For more information, please follow other related articles on the PHP Chinese website!