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

Добавление 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 года:

Источник

Как использовать модуль 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 datetime прибавить день. Смотреть фото python datetime прибавить день. Смотреть картинку python datetime прибавить день. Картинка про python datetime прибавить день. Фото python datetime прибавить день

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 datetime прибавить день. Смотреть фото python datetime прибавить день. Смотреть картинку python datetime прибавить день. Картинка про python datetime прибавить день. Фото python datetime прибавить день

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

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

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

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 datetime прибавить день. Смотреть фото python datetime прибавить день. Смотреть картинку python datetime прибавить день. Картинка про python datetime прибавить день. Фото python datetime прибавить день

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.

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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