как узнать время python

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

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

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

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

Модуль datetime содержит различные классы, чтобы получить информацию о дате и времени:

Запуск этого файла даст нам следующий вывод:

Функция now() дала нам объект со всей датой и временем его создания. Когда мы его печатаем, Python автоматически форматирует объект в строку, чтобы люди могли его легко прочитать.

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

Метод now() идеально подходит для захвата текущего времени и даты. Однако, это излишне, когда вы заботитесь только о дате или времени, но не обоих. Как мы можем получить только информацию о дате?

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

Есть два способа получить текущую дату в Python. В консоли Python мы можем получить дату из объекта datetime с помощью метода date() :

Тем не менее, это кажется пустой тратой на инициализацию объекта datetime только для захвата даты. Альтернативой может быть использование метода today() класса date :

Например, этот оператор print получает каждый атрибут, а также использует метод weekday() для получения дня недели:

Примечание: Метод weekday() возвращает целое число от 0 до 6 для представления дня недели. 0 соответствует понедельнику. Поэтому в нашем примере мы добавили 1, чтобы напечатать 5-й день недели (пятница), хотя метод weekday() вернул 4.

Теперь, когда мы можем получить текущую дату самостоятельно, давайте посмотрим, как мы можем получить текущее время

Получение текущего времени

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

Метод now() принимает временную зону в качестве аргумента, так что объект datetime генерируется соответствующим образом. Во-первых, нам нужно получить данные о часовом поясе через библиотеку pytz.

Установите библиотеку pytz :

Теперь давайте используя pytz получим текущую дату и время, если бы мы были в Берлине:

berlin_current_datetime будет объектом datetime со всеми свойствами и функциями, которые мы видели ранее, но теперь он полностью соответствует часовому поясу Берлина.

Преобразование меток времени в даты и время

Компьютерные системы измеряют время на основе количества секунд, прошедших с начала эпохи Unix, то есть 00:00:00 UTC 1 января 1970 года. Приложения, базы данных и протоколы обычно используют временную метку для отображения времени.

Вы можете получить текущую метку времени в Python, используя модуль time :

fromtimestamp() по умолчанию возвращает объект datetime в вашем часовом поясе. Вы можете указать часовой пояс в качестве второго аргумента, если хотите, чтобы он был локализован по-другому.

Например, чтобы преобразовать метку времени в объект datetime в формате UTC, вы можете сделать это:

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

Вывод

Источник

Модуль time

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

Текущее время в Python

Работа методов из модуля time основывается на общепринятой системе описания времени, которая справедлива для Unix, а также для POSIX-совместимых ОС. Согласно ее концепции, текущее время представляется в виде обыкновенного вещественного значения в секундах, прошедших с момента начала эпохи и до сегодняшнего дня. Отправной точкой для времени считается 1 января 1970 года, когда счетчик секунд имел полностью нулевое значение.

С тех пор это число постоянно растет, позволяя людям работать с различными видами дат в максимально точном представлении. В случае необходимости секунды переводятся в часы, дни, месяцы и годы, предоставляя пользователю удобный вид отображения времени. Чтобы увидеть количество секунд, прошедших с момента начала эпохи, достаточно вызвать метод time(). Но перед этим необходимо подключить модуль time с помощью операции импорта.

Как можно увидеть из данного примера, функция print получает в качестве единственного параметра число, возвращенное из метода time(), после чего выводит его на экран. Таким образом, с 1 января 1970 года прошло уже более полтора миллиарда секунд. Но подобное представление времени совсем неудобно для пользователя программы. Чтобы отобразить текущую дату в более комфортном виде, стоит передать функции print результат работы метода ctime(), не забыв произвести импорт соответствующей ему библиотеки time.

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

Методы

Для работы с временем в стандартной библиотеке языка Python имеется множество самых разных методов. Наиболее популярные функции, реализованные в модуле time, описаны в следующей таблице. Здесь можно найти их название, а также краткую характеристику.

МетодХарактеристика
time()возвращает текущее время, прошедшее с начала 1970 года в секундах
ctime(s)возвращает местное время в строке или время, полученное из s секунд
clock()возвращает процессорное время, прошедшее с момента первого вызова этой функции, точность больше 1 микросекунды
sleep(s)останавливает ход выполнения программы ровно на s секунд
strftime(s)преобразует переданное в качестве аргумента время s в строку по формату
strptime(s)разбирает строку s и преобразует в объект времени по формату
mktime(s)преобразует время s в количество секунд с начала 1970 года
localtime(s)возвращает объект, представляющий местное время или время s

Форматированный вывод

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

В следующем примере демонстрируется вывод значения, переданного функцией localtime() в strftime. То есть, мы в Python получим текущее время и выведем его в отформатированном виде. Первым аргументом метода strftime является строка с некоторым набором правил для форматирования, каждое из которых указано при помощи символа %. В результате, на экране выводится информация, включающая название месяца, число и год.

Существует большое количество символов форматирования, отвечающих за отображение отдельных свойств объекта, представляющего собой дату. Важно запомнить, что каждое новое правило необходимо отделять знаком %. Все доступные типы форматов для вывода данных о времени подробно описаны в следующей таблице. Их можно передавать методу strftime в любом порядке, помещая в строковый литерал, который служит параметром.

ФорматСвойство
%aкороткое название дня недели
%Aполное название дня недели
%bкороткое название месяца
%Bполное название месяца
%cдата и время
%dдень месяца
%Hколичество часов в 24-часовом формате
%Iколичество часов в 12-часовом 1формате
%jдень года
%mномер месяца
%Mколичество минут
%pдо или после полудня для 12-часового формата
%Sколичество секунд
%Uномер недели в году, начиная с воскресенья
%wномер дня недели
%Wномер недели в году, начиная с понедельника
%xдата
%Xвремя
%yгод без указания века
%Yполное представление года
%Zназвание часового пояса
%%символ процента

Применение метода sleep

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

Перевести программу в ждущий режим, временно заморозив ее работу, можно при помощи метода sleep, доступного в модуле time. Его единственным аргументом является количество секунд, которое следует выждать программе, прежде чем перейти к дальнейшему шагу из прописанного алгоритма. В следующем фрагменте кода функция sleep работает 10 секунд.

Как можно увидеть из результатов выполнения кода, вначале на экран выводится стартовое сообщение, после чего программа прекращает свою работу ровно на 10 секунд, поскольку метод sleep получает переменную pause в качестве аргумента. Затем отображается последняя запись, информирующая пользователя о том, какое количество секунд длилась задержка.

Время выполнения программы

Существует множество разных задач, для решения которых нужно найти время, потраченное на работу программы либо отдельных ее блоков. Чтобы найти данную величину, достаточно посчитать разницу в секундах между точкой старта определенной функции и местом, где она завершает свою работу. В следующем примере демонстрируется применение методов time() для получения текущего времени, чтобы в конечном итоге выявить, как долго работал блок кода. Метод sleep() здесь увеличивает время выполнения программы на 5 секунд.

Несмотря на простоту вышеописанного подхода, использовать его в серьезных целях, где требуется точный и независимый от ОС результат, не рекомендуется. Все дело в том, что числовое значение времени, получаемое таким образом, может иметь погрешности за счет внутренних особенностей работы компьютера, в среде которого выполняется программа. Например, системные часы могут быть подкорректированы вручную пользователем во время выполнения программы. Корректировка может произойти и автоматически, если настроена синхронизация системных часов по NTP.

Таким образом, может случиться такая ситуация, что функция вернет значение меньшее, чем при предыдущем вызове.

monotonic

По этой причине лучше всего использовать метод monotonic(), впервые появившийся в версии Python 3.3 на некоторых платформах, а начиная с выпуска 3.5 ставший доступным абсолютно везде. Его главной особенностью является точное представление измеряемого количества времени, вне зависимости от работы ОС и текущей платформы. Используемый таймер никогда не вернет при повторном вызове метода значение, которое будет меньше предыдущего. Это позволяет избежать многих ошибок, а также неожиданного поведения.

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

Заключение

Используя стандартный библиотечный модуль time в Python 3, можно всячески взаимодействовать с информацией о текущем времени. Таким образом, использование библиотеки дает возможность:

Источник

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

как узнать время python. datetime python. как узнать время python фото. как узнать время python-datetime python. картинка как узнать время python. картинка datetime 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 (ГГГГММДД). Второй пример более наглядный.

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

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

Telegram Чат & Канал

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

Паблик VK

Одно из самых больших сообществ по 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 году. Чтобы узнать, какая эпоха в вашей системе, попробуйте запустить следующий код:

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

Источник

Текущая дата и время в Python

как узнать время python. oj 1080x720 4. как узнать время python фото. как узнать время python-oj 1080x720 4. картинка как узнать время python. картинка oj 1080x720 4.

Время и дата играют важнейшую роль при решении определенных задач в программировании. Разработчику на Python приходится нередко использовать точные значения текущей (current) даты, к примеру, при сохранении информации в базе данных, вычислениях, регистрации, обеспечении доступа и т. д. В этой статье пойдет разговор о том, как узнать текущие временные значения с помощью модуля datetime. Вдобавок к этому, читатель узнает о временных настройках для разных часовых поясов и преобразовании объектов datetime в метки времени Unix.

Получаем текущую дату и время

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

Для примера можно вывести в терминал текущую (current) дату и время. Можно воспользоваться объектом datetime.datetime — из него довольно просто извлекаются объекты date и time. Сначала следует импортировать требуемый модуль:

from datetime import datetime

Да, это выглядит странновато, т. к. речь идет о получении класса datetime из модуля datetime, однако это 2 разные вещи. Далее следует воспользоваться функцией now() — она позволит получить объект с текущим временем и датой.

from datetime import datetime

Набрав код выше, вы увидите на экране следующее (в вашем случае вывод изменится, ведь минуты не стоят на месте):

как узнать время python. Screenshot 1. как узнать время python фото. как узнать время python-Screenshot 1. картинка как узнать время python. картинка Screenshot 1.

Что произошло? Функция now() отобразила объект, причем с датой и временем создания этого самого объекта. В результате была выведена соответствующая строка. Однако никто не мешает получить временные атрибуты отдельно:

как узнать время python. Screenshot 2. как узнать время python фото. как узнать время python-Screenshot 2. картинка как узнать время python. картинка Screenshot 2.

Таким образом, метод now() вполне годится для получения текущей даты и времени. Но что делать, если надо получить лишь дату?

Работа с датой current

Существуют 2 способа получения текущей даты. Первый выводит нужные данные из объекта datetime посредством метода date() :

как узнать время python. Screenshot 3. как узнать время python фото. как узнать время python-Screenshot 3. картинка как узнать время python. картинка Screenshot 3.

Во втором применяется метод today() класса date:

как узнать время python. Screenshot 4. как узнать время python фото. как узнать время python-Screenshot 4. картинка как узнать время python. картинка Screenshot 4.

Класс datetime.date позволяет получать календарную дату. Также следует добавить, что его атрибуты (year, month, day) бывают доступны и отдельно, как в примере с datetime.

как узнать время python. Screenshot 5. как узнать время python фото. как узнать время python-Screenshot 5. картинка как узнать время python. картинка Screenshot 5.

А как поступить, если надо отобразить текущее время отдельно от даты?

Работаем с текущим временем

как узнать время python. Screenshot 11. как узнать время python фото. как узнать время python-Screenshot 11. картинка как узнать время python. картинка Screenshot 11.

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

Важно отметить, что есть возможность получить временные данные и с учетом нужного часового пояса (timezone). Как и что используется, поговорим ниже.

Другой часовой пояс: временные зоны (timezones)

Метод now() принимает в Python временную зону в качестве аргумента, так что объект datetime генерируется соответствующим образом.

Для получения информации с учетом часового пояса необходимо задействовать библиотеку pytz (если ее нет, потребуется инсталляция, для чего подойдет команда pip3 install pytz ).

Так как я нахожусь в Минске, давайте получим текущие временные значения (times) именно для Минска:

как узнать время python. Screenshot 6 1. как узнать время python фото. как узнать время python-Screenshot 6 1. картинка как узнать время python. картинка Screenshot 6 1.

Строка в коде minsk_current_datetime является объектом datetime, то есть все то же самое, что и ранее, но уже в полном соответствии с часовым поясом Республики Беларусь.

Когда надо узнать время в UTC, тоже пригодится модуль pytz:

как узнать время python. Screenshot 7. как узнать время python фото. как узнать время python-Screenshot 7. картинка как узнать время python. картинка Screenshot 7.

Получить время UTC можно и без модуля pytz, т. к. datetime имеет полезное свойство timezone. Что же, давайте задействуем свойство timezone:

как узнать время python. Screenshot 8. как узнать время python фото. как узнать время python-Screenshot 8. картинка как узнать время python. картинка Screenshot 8.

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

Преобразование временных меток

Также может быть очень полезным преобразовывать время в один из самых широко применяемых форматов в вычислениях. Речь идет о временных метках Unix.

Доподлинно известно, что компьютерные системы измеряют время не так, как люди. Здесь за основу берется число секунд, которые прошли с начала Unix-эпохи, то есть с 00:00:00 UTC 1.01.1979. Базы данных, протоколы и приложения обычно задействуют временную метку.

Для ее получения в «Питоне» пригодится модуль time, следовательно, первая строка будет import time :

как узнать время python. Screenshot 9. как узнать время python фото. как узнать время python-Screenshot 9. картинка как узнать время python. картинка Screenshot 9.

Функция time.time() возвращает пользователю число с плавающей запятой и с временной меткой Unix.

На этом все. Очень надеемся, что вы получили некоторое представление об использовании встроенных Python-библиотек и модулей, необходимых для отображения временных значений.

Источник

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

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