- Python дата прибавить год
- Python дата прибавить год
- # Add year(s) to a date in Python
- # The current date might be February 29th
- # Adding years to the current date
- # Only extract the date components
- # Formatting the date
- # Add years to a date using the date() class
- # Additional Resources
- How To Add Years Date In Python
- You might also like.
Python дата прибавить год
Запись: and-semakin/mytetra_data/master/base/1525418663rd3ocoslig/text.html на raw.githubusercontent.com
Чтобы производить периодические (календарные) арифметические операции над датами в Python, можно использовать класс dateutil.relativedelta .
pip install python-dateutil
from datetime import date
from dateutil.relativedelta import relativedelta # $ pip install python-dateutil
print(date(1920, 1, 10) + relativedelta(years=+100))
- Закодировать файл в base64 на Python
- Рекурсивное создание директорий в Python
- Сортировка в Python
- Правильно добавить год/месяц к дате в Python
- Отформатировать дату в Python
- Получить рабочую директорию и директорию со скриптом в Python
- Копия объекта в Python
- Время выполнения программы на Python
- Конвертировать datetime.timedelta в строку
- Парсинг даты в Python
- Конвертировать строку (str) в булевый тип (bool) в Python
- Получить местный часовой пояс в Python
- Проверить, что строка соответствует регулярному выражению в Python
- Просмотреть доступные версии модулей в PIP
- Получить целочисленный Unix timestamp в Python
- getter и setter в Python
- Настроить формат вывода логов в Python
- Получить переменную окружения в Python
- Обновить пакет в PIP
- Получить имя (хостнейм) машины из Python
- Вывести стэк вызовов при возникновении исключения в Python
- Функция eval в Python
- Дозаписывать (append) в файл в Python
- Препроцессинг кода в Python
- Проверить, что программа установлена из Python
- Настроить путь для импорта библиотек в Python
- Получить размер терминала в символах в Python
- Enum с дополнительными полями в Python
- Ошибка invalid command ‘bdist_wheel’ при установке пакета через PIP
- Получить список аргументов функции из Python
- Сделать словарь только для чтения в Python
- Заматчить любой символ, включая перевод строки, в регулярных выражениях на Python
- Получить список файлов в директории через pathlib в Python
- Вывести действительное число с округлением до нескольких символов после запятой в Python
- Вывод в терминал текста с цветами в Python
- Перезагрузить импортированный модуль в Python
- Безопасно создать список/словарь/любой объект из строкового представления в Python
- Аналог декоратора @property для методов класса в Python
- Перехватить ошибку TimeoutError в asyncio
- Отключить вывод логов в Python
- Уровни логгирования в Python
- Удалить *.pyc и __pycache__ файлы
- Выгрузить объект в JSON в Unicode в Python
- Конвертировать datetime в другую часовую зону в Python
- Дополнить строку нулями в Python
- Вычислить MD5 от строки в Python
- Удалить знаки пунктуации из строки в Python
- Проверить, что первая буква в строке — заглавная, в Python
- Разбить (split) строку по нескольким разделителям в Python
- Отсортировать версии в Python
- Распаковать любой архив в Python
- Получить имя текущего скрипта на Python
- Установка pip на Python 2.6
- Отличить печатаемый символ Unicode от непечатаемого на Python
- Вывести версию интерпретатора Python в машиночитаемом виде
- Найти место, куда Python устанавливает пакеты (dist-packages, site-packages)
Python дата прибавить год
Last updated: Feb 18, 2023
Reading time · 4 min
# Add year(s) to a date in Python
Use the datetime.replace() method to add years to a date.
The replace method will return a new date with the same attributes, except for the year, which will be updated according to the provided value.
Copied!from datetime import datetime, date def add_years(start_date, years): try: return start_date.replace(year=start_date.year + years) except ValueError: # 👇️ preserve calendar day (if Feb 29th doesn't exist, set to 28th) return start_date.replace(year=start_date.year + years, day=28) # ✅ add years to a date my_str = '09-14-2023' # 👉️ (mm-dd-yyyy) date_1 = datetime.strptime(my_str, '%m-%d-%Y') print(date_1) # 👉️ 2023-09-14 00:00:00 result_1 = add_years(date_1, 3) print(result_1) # 👉️ 2026-09-14 00:00:00 # ----------------------------------------------- # ✅ add years to the current date current_date = datetime.today() print(current_date) # 👉️ 2023-02-18 18:57:28.484966 result_2 = add_years(current_date, 2) print(result_2) # 👉️ 2025-02-18 18:57:28.484966
The add_years function takes the date and the number of years we want to add and returns an updated date.
The datetime.replace method returns an object with the same attributes, except for the attributes which were provided by keyword arguments.
In the examples, we return a new date where the month and the day are the same but the year is updated.
The first example uses the datetime.strptime() method to get a datetime object that corresponds to the provided date string, parsed according to the specified format.
Once we have the datetime object, we can use the replace() method to replace the year.
Copied!from datetime import datetime, date def add_years(start_date, years): try: return start_date.replace(year=start_date.year + years) except ValueError: # 👇️ preserve calendar day (if Feb 29th doesn't exist, set to 28th) return start_date.replace(year=start_date.year + years, day=28) # ✅ add years to a date my_str = '09-14-2023' # 👉️ (mm-dd-yyyy) date_1 = datetime.strptime(my_str, '%m-%d-%Y') print(date_1) # 👉️ 2023-09-14 00:00:00 result_1 = add_years(date_1, 3) print(result_1) # 👉️ 2026-09-14 00:00:00
The date string in the example is formatted as mm-dd-yyyy .
If you have a date string that is formatted in a different way, use this table of the docs to look up the format codes you should pass for the second argument to the strptime() method.
Since we preserve the month and day of the month, we have to be aware that February has 29 days during a leap year, and it has 28 days in a non-leap year.
# The current date might be February 29th
The current date might be February 29th and adding X years returns a non-leap year where February 29th is not a valid date.
In this scenario, we update the year and set the day of the month to the 28th.
Copied!def add_years(start_date, years): try: return start_date.replace(year=start_date.year + years) except ValueError: # 👇️ preserve calendar day (if Feb 29th doesn't exist, set to 28th) return start_date.replace(year=start_date.year + years, day=28)
An alternative approach is to set the date to March 1st if February 29th doesn’t exist in that year.
Copied!from datetime import datetime, date def add_years(start_date, years): try: return start_date.replace(year=start_date.year + years) except ValueError: # 👇️ preserve calendar day (if Feb 29th doesn't exist # set to March 1st) return start_date + ( date(start_date.year + years, 1, 1) - date(start_date.year, 1, 1) ) # ✅ add years to a date my_str = '02-29-2024' # 👉️ (mm-dd-yyyy) date_1 = datetime.strptime(my_str, '%m-%d-%Y') print(date_1) # 👉️ 2024-02-29 00:00:00 result_1 = add_years(date_1, 3) print(result_1) # 👉️ 2027-03-01 00:00:00
# Adding years to the current date
The second example adds years to the current date.
Copied!from datetime import datetime, date def add_years(start_date, years): try: return start_date.replace(year=start_date.year + years) except ValueError: return start_date.replace(year=start_date.year + years, day=28) current_date = datetime.today() print(current_date) # 👉️ 2023-02-18 18:59:14.138009 result_2 = add_years(current_date, 2) print(result_2) # 👉️ 2025-02-18 18:59:14.138009
The datetime.today() method returns the current local datetime .
# Only extract the date components
If you only need to extract the date after the operation, call the date() method on the datetime object.
Copied!from datetime import datetime, date def add_years(start_date, years): try: return start_date.replace(year=start_date.year + years) except ValueError: # 👇️ preserve calendar day (if Feb 29th doesn't exist # set to March 1st) return start_date + ( date(start_date.year + years, 1, 1) - date(start_date.year, 1, 1) ) now = datetime.now() print(now) # 👉️ 2023-02-18 18:59:48.402212 result = add_years(now, 1) print(result) # 👉️ 2024-02-18 18:59:48.402212 # 👇️ only get a date object print(result.date()) # 👉️ 2024-02-18
# Formatting the date
If you need to format the date in a certain way, use a formatted string literal.
Copied!from datetime import datetime, date def add_years(start_date, years): try: return start_date.replace(year=start_date.year + years) except ValueError: return start_date + ( date(start_date.year + years, 1, 1) - date(start_date.year, 1, 1) ) now = datetime.now() print(now) # 👉️ 2023-02-18 19:00:11.870596 result = add_years(now, 1) print(result) # 👉️ 2024-02-18 19:00:11.870596 # 👇️ format the date print(f'result:%Y-%m-%d %H:%M:%S>') # 👉️ 2024-02-18 19:00:11
Formatted string literals (f-strings) let us include expressions inside of a string by prefixing the string with f .
Make sure to wrap expressions in curly braces — .
Formatted string literals also enable us to use the format specification mini-language in expression blocks.
# Add years to a date using the date() class
You can also use the date() class instead of the datetime class when adding years to a date.
Copied!from datetime import date def add_years(start_date, years): try: return start_date.replace(year=start_date.year + years) except ValueError: return start_date.replace(year=start_date.year + years, day=28) date_3 = date(2023, 9, 7) print(date_3) # 👉️ 2023-09-07 result_3 = add_years(date_3, 5) print(result_3) # 👉️ 2028-09-07
Here is an example that adds years to a date object that represents the current date.
Copied!from datetime import datetime, date def add_years(start_date, years): try: return start_date.replace(year=start_date.year + years) except ValueError: return start_date.replace(year=start_date.year + years, day=28) # ✅ add years to current date (using date instead of datetime) date_4 = date.today() print(date_4) # 👉️ 2022-06-20 result_4 = add_years(date_4, 6) print(result_4) # 👉️ 2028-06-20
The date.today method returns a date object that represents the current local date.
# Additional Resources
You can learn more about the related topics by checking out the following tutorials:
I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
How To Add Years Date In Python
Now let’s see example of how to add years from date day in python. I am going to show you python date to add years example. We will learn add years in date using python.
The datetime module is supplies classes for manipulating dates and times. This article will give you example of how to add years to dates in python.
Here I will give an example for how to add years to date in python. I am use datetime and time module to add years date. So let’s see the below example:
Let’s start following example.
# import datetime module
from datetime import datetime
from dateutil.relativedelta import relativedelta
currentTimeDate = datetime.now() + relativedelta(years=2)
currentTime = currentTimeDate.strftime(‘%Y-%m-%d’)
print(currentTime)
Run Example
# import datetime module
from datetime import timedelta, date
currentTimeDate = date.today() + relativedelta(years=5)
currentTime = currentTimeDate.strftime(‘%Y-%m-%d’)
print(currentTime)
Run Example
# import pandas module
import pandas as pd
initial_date = «2021-12-18»
req_date = pd.to_datetime(initial_date) + pd.DateOffset(years=3)
req_date = req_date.strftime(‘%Y-%m-%d’)
print(req_date)
Run Example
✌️ Like this article? Follow me on Twitter and Facebook. You can also subscribe to RSS Feed.