python как прибавить дни к дате

Добавление 5 дней к дате в Python

у меня дата «10/10/11(m-d-y)» и я хочу добавить к нему 5 дней с помощью скрипта Python. Пожалуйста, рассмотрите общее решение, которое также работает в конце месяца.

Я использую следующий код:

теперь я хочу добавить 5 дней к этой дате. Я использовал следующий код:

который вернул эту ошибку:

9 ответов

предыдущие ответы верны, но это, как правило, лучшая практика:

тогда у вас будет, используя datetime.timedelta :

импорт timedelta первый.

и Date.today() вернет сегодняшнее время, может быть, вы хотите

Я думаю, вам не хватает чего-то подобного:

Если вы уже используете pandas, вы можете сэкономить немного места, не указав формат:

вот еще один способ добавить дни на дату, используя dateutil по relativedelta.

Через 5 Дней: 30/06/2015 15:56:09

вот функция получения от now + указанных дней

для того, чтобы иметь менее многословный код, а не конфликты имен между datetime и datetime.datetime, вы должны переименовать классы с CamelCase имена.

таким образом, вы можете сделать следующее, что я думаю, что это ясно.

кроме того, будет нет конфликта имен если вы хотите import datetime позже.

Если вы хотите добавить дни к дате теперь вы можете использовать этот код

Это моя начальная, но более полная разработка для общей функции dateadd в python

Источник

Работа с датой и временем в Python

Модуль datetime

Модуль datetime содержит классы:

Класс datetime.date

Класс datetime.date принимает три аргумента: год, месяц и день.

Давайте посмотрим, какой сейчас день:

Класс datetime.datetime

Класс datetime.datetime принимает аргументы: год, месяц, день, час, минута, секунда и микросекунда.

Давайте посмотрим, какое сейчас время:

Получить из объекта datetime отдельно дату и отдельно время:

%aСокращенное название дня недели
%AПолное название дня недели
%bСокращенное название месяца
%BПолное название месяца
%cДата и время
%dДень месяца [01,31]
%H24-часовой формат часа [00,23]
%I12-часовой формат часа [01,12]
%jДень года. Цифровой формат [001,366]
%mНомер месяца. Цифровой формат [01,12]
%MМинута. Цифровой формат [00,59]
%pДо полудня или после (AM или PM)
%SСекунда. Цифровой формат [00,61]
%UНомер недели в году. Цифровой формат [00,53] (с воскресенья)
%wДень недели. Цифровой формат [0(воскресенье), 6]
%WНомер недели в году. Цифровой формат [00,53] (с понедельника)
%xДата
%XВремя
%yГод без века. Цифровой формат [00,99]
%YГод с веком. Цифровой формат
%ZВременная зона
%%Знак процента

Методы класса datetime :

Класс datetime.timedelta

Получить результат в секундах позволяет метод total_seconds() :

Прибавить к текущей дате 10 дней, 10 часов и 10 минут:

Модуль time

Модуль основан на «эпохе Unix», которая началась 1 января 1970 года:

Источник

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Импорт модуля осуществляется следующим путем:

Навигация по посту

Получение текущей даты и времени

Для вывода даты и времени нужно выполнить следующее:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Как видно мы получаем для создания объекта даты и времени используется класс с тем же именем что и модуль datetime.

Когда нужно получить только дату используется класс date:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Получение только времени выполняется через метод time():

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Каждый из описываемых классов можно импортировать следующим способом:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Форматирование и перевод в строку

Для получение части даты или времени можно использовать следующие атрибуты:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Так же есть метод strftime, который форматирует даты в нужном формате в строку. Например так мы получим дату в формате, который используется у нас:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Таким же способом можно получить время и дату:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Обратите внимание, что таким способом мы преобразуем объект класса datetime в строку и мы больше не сможем использовать методы по работе с датой (например сравнение):

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Мы получим ошибку так как уже работаем со строкой:

Выше описаны основные возможности форматирования используя метод strftime(), но их, конечно, больше.

Получения дня недели и название месяца

Можно получить название дня недели или название. Численный вариант эквивалентен следующим значениям:

Следующий пример вернет день недели в виде числа:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Или получить название:

Такой же принцип по работе с месяцами, где:

Создание объекта даты и времени

Для создания даты используется класс с аргументами date(год, месяц, число):

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Можно создать дату и время. В обоих случаях мы можем использовать именованные аргументы если так удобнее:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Каждый аргумент времени, по умолчанию, имеет значение 0. Мы так же можем использовать подход выше для получения, например, только года или времени:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Если вы не укажете год, месяц или день, то получите ошибку т.к. они по умолчанию равны None:

Есть отдельный класс для создания времени time:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Создание из строк

Используя strptime() можно создавать объект datetime из строки:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Продолжительность времени с timedelta

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Все атрибуты, которые мы можем указывать для этого класса:

Кроме этого мы можем преобразовывать эти объекты в секунды:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Разница между датами

Мы можем искать разницу между датами получая объект timedelta:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Изменение объектов

Каждый их объектов выше можно изменить. Так мы изменим объект timedelta прибавив часы к минутам:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

С помощью timedelta изменяется и дата. Пример ниже изменяет текущую дату прибавляя к ней 1 день и 1 час:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Сравнение и условия

Каких либо хитростей в сравнении объектов нет. В следующем примере идет сравнение двух дат с разницей в день:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

При этом стоит проверять, что объекты относятся к классу datetime, а не являются строками. В следующем примере мы сравниваем года, но они уже относятся к численным:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Объект timedelta тоже можно сравнивать:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Работа с метками (штампами) timestamp

При работе с API или в Unix системах мы можем увидеть отображение времени в таком формате:

Данные числа обозначают количество секунд с 1 января 1970 года. Мы можем конвертировать данное число в понятный формат используя datetime:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Так же сработает если мы хотим получить и время:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Для конвертирования в timestamp используется метод с аналогичным названием:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Работа с часовыми поясами

К сожалению у меня нет большого опыта работы с часовыми поясами и примеры ниже не стоит рассматривать как лучшие практики.

Библиотека datetime не хранит часовые пояса, данные о переводах часов (летнее и зимнее время) и високосных секундах. К тому же, некоторые страны, могут изменить время опираясь на локальные ситуации. Эти ситуации опасны, когда идет запись в базу данных. Для вывода в GUI, можно использовать datetime.datetime.now() или высчитывать часовой пояс из базы.

Для записи в базу данных мы можем использовать время UTC и отдельно считать часовой пояс:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Следующий пример вычислит разницу времени между UTC и локальным. Насколько я знаю он может не сработать на версиях Python

Источник

Как использовать модуль datetime в Python

Datetime — важный элемент любой программы, написанной на Python. Этот модуль позволяет управлять датами и временем, представляя их в таком виде, в котором пользователи смогут их понимать.

datetime включает различные компоненты. Так, он состоит из объектов следующих типов:

Как получить текущие дату и время?

Получить текущую дату в Python

Класс date можно использовать для получения или изменения объектов даты. Например, для получения текущей с учетом настроек подойдет следующее:

Текущая дата — 2020-11-14 в формате год-месяц-день соответственно.

Получить текущее время

Для получения текущего локального времени сперва нужно получить текущие дату и время, а затем достать из этого объекта только время с помощью метода time() :

Компоненты datetime в Python

В этом руководстве речь пойдет о следующих элементах:

Как создавать объекты даты и времени

В этом примере создается объект времени представленный следующим образом (8, 48, 45).

Для создания объекта даты нужно передать дату с использованием следующего синтаксиса:

Вернет вот такой результат:

Timedelta

Все аргументы опциональные и их значения по умолчанию равно 0. Они могут быть целыми или числами с плавающей точкой, как положительными, так и отрицательными. Благодаря этому можно выполнять математические операции, такие как сложение, вычитание и умножение.

Как вычислить разницу для двух дат

Посмотрим на несколько примеров вычисления разницы во времени. Предположим, есть два объекта datetime :

Для получения разницы нужно лишь вычесть значение одного объекта из второго:

Таким образом между 2 и 30 октября 2020 года 28 дней.

Как вычислить разницу двух объектов datetime.time

Такой код вернет следующую ошибку:

Как получать прошлые и будущие даты с помощью timedelta

Поскольку timedelta — это длительность, то для получения прошлой или будущей даты нужно добавить объект timedelta к существующему или вычесть из него же. Вот пример нескольких уравнений, где n — это целое число, представляющее количество дней:

Если нужно, например, получить дату за прошлые две недели, то достаточно вычесть 14 дней из текущей даты:

Предположим, вы задумали практиковать определенный навык в течение 21 дня. Для получения будущей даты нужно добавить 21 день к текущей дате:

Другие арифметические операции с timedelta

Значения даты и времени могут сравниваться для определения того, какая из них была раньше или позже. Например:

Часовые пояса

Пока что мы работали с datetime без учета часовых поясов и летнего времени. Но прежде чем переходить к следующим пунктам, нужно разобраться с разницей в абсолютных (naive) и относительных (aware) датах.

Абсолютные даты не содержат информацию, которая бы могла определить часовой пояс или летнее время. Однако с такими намного проще работать.

Относительные же содержат достаточно информации для определения часового пояса или отслеживания изменений из-за летнего времени.

Разница между DST, GMT и UTC

Как работать с часовыми поясами

Рассмотрим, как создать простой относительный объект datetime :

Предположим, нужно получить текущее время для Найроби. Для этого нужно использовать конкретный часовой пояс. Для начала можно с помощью pytz получить все существующие часовые пояса.

Вот некоторые из них:

Для получения времени в Найроби:

А вот так можно получить время Берлина:

Здесь можно увидеть разницу в часовых поясах разных городов, хотя сама дата одна и та же.

Конвертация часовых поясов

При конвертации часовых поясов в первую очередь нужно помнить о том, что все атрибуты представлены в UTC. Допустим, нужно конвертировать это значение в America/New_York :

Другие практические примеры

Всегда храните даты в UTC. Вот примеры:

Как конвертировать строки в datetime

strptime() в Python — это метод из модуля datetime. Вот его синтаксис:

Аргументы формата необязательные и являются строками. Предположим, нужно извлечь текущие дату и время:

Источник

Adding days to a date in Python

I have a date «10/10/11(m-d-y)» and I want to add 5 days to it using a Python script. Please consider a general solution that works on the month ends also.

I am using following code:

Now I want to add 5 days to this date. I used the following code:

Which returned this error:

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

15 Answers 15

The previous answers are correct but it’s generally a better practice to do:

Import timedelta and date first.

And date.today() will return today’s datetime, may be you want

If you happen to already be using pandas, you can save a little space by not specifying the format:

If you want add days to date now, you can use this code

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

Here is another method to add days on date using dateutil’s relativedelta.

After 5 Days: 30/06/2015 15:56:09

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

I guess you are missing something like that:

Here is a function of getting from now + specified days

In order to have have a less verbose code, and avoid name conflicts between datetime and datetime.datetime, you should rename the classes with CamelCase names.

So you can do the following, which I think it is clearer.

Also, there would be no name conflict if you want to import datetime later on.

python как прибавить дни к дате. Смотреть фото python как прибавить дни к дате. Смотреть картинку python как прибавить дни к дате. Картинка про python как прибавить дни к дате. Фото python как прибавить дни к дате

using timedelta s you can do:

Generally you have’got an answer now but maybe my class I created will be also helpfull. For me it solves all my requirements I have ever had in my Pyhon projects.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *