Ввести время в питоне

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

Python содержит несколько инструментов, которые разработчик может использовать для работы с датой и временем. В данном разделе статье мы рассмотрим модули datetime и time. Мы изучим принципы их работы и способы их применения. Начнем с модуля datetime.

Модуль datetime

Мы изучим следующие классы модуля:

Благодаря этим классам мы в будущем сможем работать с большей частью случаев, в которых нам понадобятся объекты date и datetime. Также существует класс tzinfo, который применяется для работы с часовыми поясами. Для дополнительной информации об этом классе вы можете обратиться к документации Python.

datetime.date

Python может представлять даты различными способами. Для начала, рассмотрим формат datetime.date, так как это один из самых простых объектов date.

В данном коде показано, как создать простой объект даты. Класс date принимает три аргумента: год, месяц и день. Если вы укажите неправильное значение, вы увидите ошибку ValueError, как в случае выше. В противном случае вы увидите, что объект datetime.date вернулся. Давайте взглянем на еще один пример:

Здесь мы присваиваем объекту date переменную d. Теперь мы можем получить доступ к различным компонентам даты по названиям, таким как d.year или d.month. Давайте посмотрим, какой сейчас день:

Это может быть полезно, когда вам нужно записать, какой сейчас день. Или, если вам нужно выполнить основанный на сегодняшней дате расчет. Мелочь, а приятно.

datetime.datetime

Объект datetime.datetime содержит всю информацию объектов datetime.date плюс datetime.time. Давайте приведем несколько примеров, для лучшего понимания разницы между этим объектом, и объектом datetime.date.

Мы видим, что datetime.datetime принимает несколько дополнительных аргументов: год, месяц, день, час, минута и секунда. Это также позволяет вам указывать информацию о микросекундах и часовом поясе. При работе с базами данных, данные типы объектов будут использоваться достаточно часто. Большую часть вашей работы, вам нужно будет конвертировать форматы date или datetime Python в форматы SQL datetime или timestamp. Обратите внимание на то, что today совместно с datetime.datetime использует два разных метода:

Модуль datetime содержит другой метод, под названием strftime. Этот метод позволяет разработчику создавать строку, отображающую время в более понятной для человека форме. Существует целая таблица параметров форматирования, с которой рекомендуется ознакомиться в документации Python, в секции 8.1.7. Давайте взглянем на несколько примеров, показывающих всю полезность данного метода:

Первый пример – это скорее хитрость. В нем показано, как конвертировать сегодняшний объект datetime в строку, следующую за форматом YYYYMMDD (ГГГГММДД). Второй пример более наглядный.

Читайте также:  Некоторые ресурсы блокируют первую отрисовку страницы css

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

В нем мы присваиваем объект datetime переменной под названием today и применяем два разных параметра форматирования строки. Первый параметр добавляет косые черточки между элементами datetime, а также перегруппировывает datetime, теперь он делится на месяц, день и год. В последнем примере мы создаем временную отметку, которая следует типичному формату: YYYY-MM-DD.HH.MM.SS. Если вам нужно указать год как двухзначный (“YY”), вы можете заменить %Y на %y.

datetime.timedelta

Объект datetime.timedelta отображает длительность времени. Другими словами, это разница между двумя датами или временными отметками. Давайте взглянем на наглядный пример:

Мы создали два объекта datetime. Один указывает на сегодняшний день, второй – на прошедшую неделю. После этого, мы берем разницу между ними. Это возвращает объект timedelta, который мы можем далее использовать, чтобы выяснить, сколько прошло дней или секунд, между этими двумя датами. Если вам нужно узнать количество часов или минут между двумя датами, вам понадобится немножко математики, чтобы выяснить это. Давайте взглянем на проверенный способ:

Отсюда мы узнаем, что в неделе 186 часов и 13 минут. Обратите внимание на то, что мы используем двойную косую черту в качестве нашего оператора деления, также известного как floor division. Теперь мы готовы к тому, чтобы узнать больше о модуле time Python.

Модуль time

Модуль time открывает разработчику Python доступ к нескольким связанным со временем функциям. Модуль основан на «эпохе», точке, с которой начинается время. Для систем Unix, эпоха началась в 1970 году. Чтобы узнать, какая эпоха в вашей системе, попробуйте запустить следующий код:

time . struct_time ( tm_year = 1970 , tm_mon = 1 , tm_mday = 1 , tm_hour = 0 , tm_min = 0 , tm_sec = \

Я запустил его на Windows 7, которая также уверена в том, что начало времен датируется 1970м годом. В любом случае, в данном разделе мы ознакомимся со следующими функциями:

time.ctime

Функция time.ctime конвертирует время в секунды, начиная с эпохи, в строку, показывающую местное время. Если вы ничего не передадите данной функции, то настоящее время вернется обратно. Давайте взглянем на несколько примеров:

В данном коде мы показали результаты вызова функции time.ctime, как со случайным набором секунд, начиная с эпохи, так и с пустным значением. Это можно применить, к примеру, в том случае, кода кому-нибудь нужно сохранить дату в секундах, начиная с эпохи, после чего конвертировать это в более удабриваемый формат. Немного проще, сохранить большое целое число (или длинное) в базу данных, чем страдать над ним, форматируя объект datetime в какой-либо объект даты, который принимает база данных. Конечно, это также имеет свой недостаток: вам, возможно, нужно будет преобразовать целое число или значение с плавающей запятой обратно в строку.

Читайте также:  Xdebug php sublime text

time.sleep

Функция time.sleep дает разработчику возможность приостановить выполнение его скрипта на определенное количество секунд. Это можно сравнить с добавлением функции «Пауза» в вашу программу. Я нашел этот класс особенно полезным, когда мне нужно было подождать несколько секунд, пока закроется файл, или база данных закончит выполнять свою задачу. Давайте взглянем на пример. Откройте новое окно в IDLE и сохраните следующий код:

Источник

Дата и время в Питоне

Говоря про временные ряды, мы уже начали анализировать данные, в которых присутствует дата и время (в частности, в библиотеке Pandas). Сегодня мы сделаем шаг назад и посмотрим в целом как работать с датой и временем в Питоне.

  • Модуль datetime
    • Импорт модуля и класса datetime
    • Объект datetime и функция now()
    • Timestamp
    • Создание объекта datetime вручную
    • Строка в datetime через .strptime()
    • Datetime в строку через .strftime()
    • Сравнение дат
    • Календарный и алфавитный порядок дат
    • Промежуток времени и класс timedelta
    • Арифметика дат
    • Конструкция try / except и оператор pass
    • Обработка нескольких форматов дат
    • Вопросы для закрепления

    Модуль datetime

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

    Первая особенность, про которую стоит сказать, datetime — это не только название модуля, но и название одного из классов внутри этого модуля. Помимо класса datetime, нас будет интересовать ещё один класс — timedelta.

    Импорт модуля и класса datetime

    Самый простой способ — импортировать весь модуль datetime.

    Далее предположим, что мы хотим воспользоваться функцией now(), которая находится внутри класса datetime. Функция now() выводит текущие дату и время.

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

    Объект datetime и функция now()

    Теперь поговорим подробнее про то, что выводит функция now().

    На выходе мы получаем текущие дату и время по UTC⧉, потому что серверы Google Colab настроены именно на это время (московское время, например, отличается на +3 часа). Сам вывод состоит из следующих компонентов.

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

    print ( cur_dt . year , cur_dt . month , cur_dt . day , cur_dt . hour , cur_dt . minute , cur_dt . second , cur_dt . microsecond )

    Мы также можем посмотреть на день недели, причем в двух форматах. Метод .weekday() считает, что неделя начинается с нуля, метод .isoweekday(), что с единицы.

    Так как 18 ноября 2021 года — это четверг, то применив эти методы, мы должны получить цифры три и четыре соответственно.

    Разумеется, когда вы будете самостоятельно исполнять код в ноутбуке, будут выведены текущие дата и время сервера Google.

    Объект datetime, полученный из функции now(), не содержит данных о часовом поясе.

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

    Посмотрим, не появился ли часовой пояс.

    Timestamp

    До сих пор мы работали с привычным для нас делением на годы, месяцы, дни, часы, минуты и секунды. При этом компьютеры используют так называемое время Unix, которое отсчитывается в секундах c первого января 1970 года. Для отображения даты и времени в таком формате в Питоне есть объект timestamp (по-английски — «временная отметка»).

    Посмотрим, сколько секунд и микросекунд прошло с 01.01.1970 и до момента исполнения кода.

    Не составляет труда вернуть timestamp обратно в привычный формат.

    Создание объекта datetime вручную

    Дату и время не обязательно получать из функции now(). Мы вполне можем передать объекту datetime наши собственные параметры, например, день рождения Питона.

    Обратите внимание, мы ввели только год, месяц и день. Это обязательные параметры. Остальные параметры можно не вводить, в этом случае они заполнятся нулями.

    Из этого объекта мы также можем извлечь компоненты (год, месяц, число и т.д.) и создать timestamp.

    Преобразование строки в datetime и наоборот

    Строка в datetime через .strptime()

    Если дата содержится в строковом формате, Питон не сможет извлечь из нее компоненты. Предварительно строку нужно преобразовать. Для этого есть метод .strptime().

    Преобразуем эту строку в объект datetime с помощью метода .strptime().

    Как вы видите, сначала мы передаём этому методу саму строку, а затем тот формат, в котором содержится дата и время (иначе Питон не поймет, к чему относится конкретное число).

    Давайте расшифруем каждое из обозначений:

    • % Y — год в формате ГГГГ, например: 1995, 2003 и т.д.
    • % m — месяц в виде числа с нулями, например, январь — 01, февраль — 02 и т.д.
    • % d — день месяца в виде числа с нулями, например: 01, 02, …, 31
    • % H — час в 24-часовом формате в виде числа с нулями, например: 00, 01, …, 23
    • % M — минуты в виде числа с нулями, например: 00, 01, …, 59
    • % S — секунды в виде числа с нулями, например: 00, 01, …, 59

    Дефисы, пробелы, двоеточия или, например, запятые — тоже элементы формата и их тоже нужно указывать.

    Datetime в строку через .strftime()

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

    Источник

Оцените статью