okpython.net
Все для начинающих

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

Чтобы узнать текущую дату и время в Python из скрипта, проще всего использовать возможности модуля datetime стандартной библиотеки (см. пример №1).

Код Результат pythonCodes
# Импортируем класс 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).

Код Результат pythonCodes
# Импортируем класс 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» нашего учебника.