Как получить текущую дату и время в Python?
Чтобы узнать текущую дату и время в Python из скрипта, проще всего использовать возможности модуля datetime стандартной библиотеки (см. пример №1).
# Импортируем класс datetime из модуля.
from datetime import datetime as dt
# Получаем экземпляр текущего времени.
cur_dt = dt.now()
# Выводим строковые представления объектов.
# Дата и время: 2024-04-25 09:08:36.550618.
print('Дата и время:', cur_dt)
# Дата: 2024-04-25.
print('Дата:', cur_dt.date())
# Время: 09:08:36.550618.
print('Время:', cur_dt.time(), end='\n\n')
# Опять же, получаем компоненты по отдельности,
# использовав атрибуты полученного экземпляра.
year = cur_dt.year
month = cur_dt.month
day = cur_dt.day
hour = cur_dt.hour
minute = cur_dt.minute
second = cur_dt.second
# Форматируем по-своему и выводим.
d_1 = f'{day}.0{month}.{year}'
# Дата: 25.04.2024.
print('Дата:', d_1)
t_1 = f'0{hour}:0{minute}:{second}'
# Время: 09:08:36.
print('Время:', t_1, end='\n\n')
# Также можно получить все компоненты в виде именованного кортежа:
# time.struct_time(tm_year=2023, tm_mon=9, tm_mday=3, tm_hour=16,
# tm_min=53, tm_sec=37, tm_wday=6, tm_yday=246, tm_isdst=-1).
tm_tpl = cur_dt.timetuple()
# Форматируем по-своему и выводим.
d_2 = f'{tm_tpl.tm_mday}.0{tm_tpl.tm_mon}.{tm_tpl.tm_year}'
# Дата: 25.04.2024.
print('Дата:', d_2)
t_2 = f'0{tm_tpl.tm_hour}:0{tm_tpl.tm_min}:{tm_tpl.tm_sec}'
# Время: 09:08:36.
print('Время:', t_2)
Дата и время: 2024-04-25 09:08:36.550618
Дата: 2024-04-25
Время: 09:08:36.550618
Дата: 25.04.2024
Время: 09:08:36
Дата: 25.04.2024
Время: 09:08:36
Пример №1. Получение текущих даты и времени в Питоне.
Следует иметь в виду, что стандартный модуль datetime не поддерживает автоматическое определение и конвертацию часовых поясов. Поэтому для определения текущей даты и времени в других регионах нужно использовать дополнительные библиотеки вроде pytz или dateutil (см. пример №2).
# Импортируем класс datetime из модуля.
from datetime import datetime as dt
# Импортируем необходимые модули.
import pytz
import dateutil.tz
# Получаем текущее время без указания часового пояса.
local_datetime = dt.now()
# 2024-04-25 09:49:52.212787.
print(local_datetime)
# Создаем объект tzinfo для часового пояса Минска.
minsk_tz = dateutil.tz.gettz("Europe/Minsk")
# Создаем объект tzinfo для часового пояса Нью-Йорка.
new_york_tz = dateutil.tz.gettz("America/New_York")
# Получаем время в Минске.
minsk_datetime = local_datetime.astimezone(minsk_tz)
# 2024-04-25 09:49:52.212787+03:00.
print(minsk_datetime)
# Получаем время в Нью-Йорке.
new_york_datetime = minsk_datetime.astimezone(new_york_tz)
# 2024-04-25 02:49:52.212787-04:00 (время перевелось автоматически).
print(new_york_datetime, end='\n\n')
# Тоже самое с помощью pytz.
# Получаем текущее время без указания часового пояса.
local_datetime = dt.now()
# 2024-04-25 09:49:52.212787.
print(local_datetime)
# Создаем объект tzinfo для часового пояса Минска.
minsk_tz = pytz.timezone("Europe/Minsk")
# Вначале обязательно переходим на UTC (доп. действие).
local_datetime.replace(tzinfo=pytz.utc)
# Задаем объекту datetime часовой пояс Минска.
minsk_datetime = local_datetime.astimezone(minsk_tz)
# 2024-04-25 09:49:52.212787+03:00.
print(minsk_datetime)
# Создаем объект tzinfo для часового пояса Нью-Йорка.
new_york_tz = pytz.timezone("America/New_York")
# Конвертируем объект datetime из одного часового пояса в другой.
new_york_datetime = minsk_datetime.astimezone(new_york_tz)
# 2024-04-25 02:49:52.212787-04:00 (время перевелось автоматически).
print(new_york_datetime, end='\n\n')
# Выводим список актуальных названий зон базы IANA.
print(pytz.common_timezones)
2024-04-25 09:49:52.212787
2024-04-25 09:49:52.212787+03:00
2024-04-25 02:49:52.212787-04:00
2024-04-25 09:49:52.319786
2024-04-25 09:49:52.319786+03:00
2024-04-25 02:49:52.319786-04:00
['Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa',
'Africa/Algiers', 'Africa/Asmara', 'Africa/Bamako',
'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau',
...
'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels',
'Europe/Bucharest', 'Europe/Budapest', 'Europe/Busingen',
'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin',
'Europe/Gibraltar', 'Europe/Guernsey', 'Europe/Helsinki',
'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey',
'Europe/Kaliningrad', 'Europe/Kirov', 'Europe/Kyiv',
'Europe/Lisbon', 'Europe/Ljubljana', 'Europe/London',
'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta',
'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco',
'Europe/Moscow', 'Europe/Oslo', 'Europe/Paris',
...
'Pacific/Wake', 'Pacific/Wallis', 'US/Alaska',
'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii',
'US/Mountain', 'US/Pacific', 'UTC']
Пример №2. Получение текущих даты и времени в регионах.
Поскольку библиотеки pytz и dateutil в состав стандартной библиотеки Питона не входят, их нужно сперва в окружение установить, использовав для этого команды «pip install pytz» и «pip install python-dateutil».
Подробнее о работе с датой и временем в Пайтон можно почитать в параграфе «Дата и время в Python» нашего учебника.