Текущая дата и время в Python
Время и дата играют важнейшую роль при решении определенных задач в программировании. Разработчику на Python приходится нередко использовать точные значения текущей (current) даты, к примеру, при сохранении информации в базе данных, вычислениях, регистрации, обеспечении доступа и т. д. В этой статье пойдет разговор о том, как узнать текущие временные значения с помощью модуля datetime. Вдобавок к этому, читатель узнает о временных настройках для разных часовых поясов и преобразовании объектов datetime в метки времени Unix.
Получаем текущую дату и время
Datetime включает в себя разные классы, позволяющие получать нужные временные данные:
- datetime.date: день, месяц и год;
- datetime.time: время в часах, минутах, секундах, а также микросекундах. Тут дата значения не имеет;
- datetime.datetime: здесь хранятся атрибуты date и time.
Для примера можно вывести в терминал текущую (current) дату и время. Можно воспользоваться объектом datetime.datetime — из него довольно просто извлекаются объекты date и time. Сначала следует импортировать требуемый модуль:
from datetime import datetime
Да, это выглядит странновато, т. к. речь идет о получении класса datetime из модуля datetime, однако это 2 разные вещи. Далее следует воспользоваться функцией now() — она позволит получить объект с текущим временем и датой.
from datetime import datetime
Набрав код выше, вы увидите на экране следующее (в вашем случае вывод изменится, ведь минуты не стоят на месте):

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

Таким образом, метод now() вполне годится для получения текущей даты и времени. Но что делать, если надо получить лишь дату?
Работа с датой current
Существуют 2 способа получения текущей даты. Первый выводит нужные данные из объекта datetime посредством метода date() :

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

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

Тут все понятно и просто. Но есть нюанс: если надо получить день недели, прописывают current_date.weekday()+1 . Дело в том, что нумерация дней недели начинается с нуля, то есть понедельник — это 0, вторник — 1, среда — 2 и так далее. Если такое положение вещей устраивает, +1 можно и не добавлять.
А как поступить, если надо отобразить текущее время отдельно от даты?
Работаем с текущим временем
Текущее время от объекта datetime получают посредством метода time() . Вот как это выглядит:

Здесь отдельно получить часы, минуты, секунды и микросекунды не представляется возможным, да в этом и нет необходимости, т. к. само понятие времени суток не предполагает другого отображения.
Важно отметить, что есть возможность получить временные данные и с учетом нужного часового пояса (timezone). Как и что используется, поговорим ниже.
Другой часовой пояс: временные зоны (timezones)
Метод now() принимает в Python временную зону в качестве аргумента, так что объект datetime генерируется соответствующим образом.
Для получения информации с учетом часового пояса необходимо задействовать библиотеку pytz (если ее нет, потребуется инсталляция, для чего подойдет команда pip3 install pytz ).
Так как я нахожусь в Минске, давайте получим текущие временные значения (times) именно для Минска:

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

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

Таким образом, можно без проблем преобразовать текущие даты и значения времени в различные часовые пояса.
Преобразование временных меток
Также может быть очень полезным преобразовывать время в один из самых широко применяемых форматов в вычислениях. Речь идет о временных метках Unix.
Доподлинно известно, что компьютерные системы измеряют время не так, как люди. Здесь за основу берется число секунд, которые прошли с начала Unix-эпохи, то есть с 00:00:00 UTC 1.01.1979. Базы данных, протоколы и приложения обычно задействуют временную метку.
Для ее получения в «Питоне» пригодится модуль time, следовательно, первая строка будет import time :

Функция time.time() возвращает пользователю число с плавающей запятой и с временной меткой Unix.
На этом все. Очень надеемся, что вы получили некоторое представление об использовании встроенных Python-библиотек и модулей, необходимых для отображения временных значений.
Получение текущей даты в формате YYYY-MM-DD в Python

Часто в программировании возникает потребность обрабатывать даты и время. Одной из типичных задач является получение текущей даты в определенном формате. В Python для работы с датами и временем существует стандартная библиотека datetime. Однако, не всегда очевидно, как получить текущую дату в формате YYYY-MM-DD (где YYYY — год, MM — месяц, DD — день).
Простым и элегантным решением будет использование метода isoformat() из модуля datetime.
import datetime current_date = datetime.date.today().isoformat() print(current_date)
Метод isoformat() возвращает строковое представление даты в формате YYYY-MM-DD, что и требовалось.
Но если есть необходимость использовать другой формат даты, можно использовать метод strftime() , который позволяет форматировать дату по заданной маске. Вот пример использования этого метода:
import datetime current_date = datetime.datetime.now().strftime('%Y-%m-%d') print(current_date)
В этом примере используется маска ‘%Y-%m-%d’, где %Y означает четырехзначный год, %m — двузначный месяц, а %d — двузначный день. Таким образом, результатом выполнения этого кода будет текущая дата в формате YYYY-MM-DD.
Как получить текущую дату и время в Python?
Одним из способов получения текущей даты и времени в Python является использование класса date из модуля datetime.
Пример отображения текущей даты в Python:
from datetime import date
today = date . today ( )
print ( «Today’s date:» , today )
Today’s date: 2023-09-11
Мы импортировали класс date из модуля datetime . Затем использовали метод date.today() для получения текущей локальной даты.
Пример отображения текущей даты в разных форматах:
from datetime import date today = date.today() # Формат dd/mm/YY d1 = today.strftime(«%d/%m/%Y») print(«d1 =», d1) # Месяц в текстовом формате, день и год d2 = today.strftime(«%B %d, %Y») print(«d2 =», d2) # Формат mm/dd/y d3 = today.strftime(«%m/%d/%y») print(«d3 =», d3) # Аббревиатура месяца, день и год d4 = today.strftime(«%b-%d-%Y») print(«d4 urvanov-syntax-highlighter-main» style=»»>
Как в python получить текущую дату и время
datetime.fromtimestamp(timestamp) — дата из стандартного представления времени.
datetime.date() — объект даты (с отсечением времени).
datetime.time() — объект времени (с отсечением даты).
datetime.combine(date, time) — объект datetime из комбинации объектов date и time.
datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]) — возвращает новый объект datetime с изменёнными атрибутами.
datetime.weekday() — день недели в числовом формате, понедельник — 0, воскресенье — 6.
datetime.isoweekday() — день недели в числовом формате, понедельник — 1, воскресенье — 7.
datetime.strptime(date_string, format) — преобразует строку в datetime.
datetime.strftime(format) — преобразует datetime в строку в datetime.
Опции strftime из документации на модуль time