Как использовать модуль datetime для работы с датами?

онлайн тренажер по питону
Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Как использовать модуль datetime для работы с датами? Подробное руководство с примерами

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

Если вы когда-либо задавались вопросами, как получить сегодняшнюю дату в Python, как вычислить разницу между датами или преобразовать строку в дату, эта статья даст вам исчерпывающие ответы с готовыми примерами.


Что такое модуль datetime в Python?

Модуль datetime входит в стандартную библиотеку Python и предоставляет классы для управления временем и датами.

С помощью этого модуля вы можете:

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

  • Выполнять арифметику с датами.

  • Форматировать и преобразовывать даты.

  • Работать с временными интервалами (timedelta).

Импорт модуля осуществляется просто:

python
import datetime

Как получить сегодняшнюю дату в Python?

Это одна из самых часто встречающихся задач. Для этого используется метод today().

python
from datetime import date today = date.today() print(f"Сегодняшняя дата: {today}")

Вывод: Сегодняшняя дата в формате ГГГГ-ММ-ДД, например: 2025-05-09.


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

Используйте класс datetime и метод now():

python
from datetime import datetime now = datetime.now() print(f"Текущая дата и время: {now}")

Извлечение отдельных компонентов даты и времени

python
current_time = datetime.now() print(f"Год: {current_time.year}") print(f"Месяц: {current_time.month}") print(f"День: {current_time.day}") print(f"Часы: {current_time.hour}") print(f"Минуты: {current_time.minute}") print(f"Секунды: {current_time.second}")

Как форматировать дату и время?

Часто необходимо представить дату в удобочитаемом виде. Для этого используется метод .strftime().

python
now = datetime.now() formatted = now.strftime("%d-%m-%Y %H:%M:%S") print(f"Отформатированная дата и время: {formatted}")

📚 Популярные форматы:

Код Назначение Пример
%Y Год (4 цифры) 2025
%m Месяц (с ведущим нулём) 05
%d День месяца 09
%H Часы (24ч) 14
%M Минуты 30
%S Секунды 45

Как преобразовать строку в дату?

Если у вас есть дата в виде строки, и нужно преобразовать её в объект datetime, используйте метод strptime().

python
from datetime import datetime date_string = "09-05-2025" converted_date = datetime.strptime(date_string, "%d-%m-%Y") print(f"Дата после преобразования: {converted_date}")

Как вычислить разницу между датами?

Модуль datetime позволяет легко рассчитать количество дней между двумя датами с помощью объекта timedelta.

python
from datetime import date date1 = date(2025, 5, 9) date2 = date(2025, 12, 31) delta = date2 - date1 print(f"Осталось дней до Нового Года: {delta.days}")

Работа с временными интервалами (timedelta)

Если нужно добавить или вычесть определённое количество дней, часов или минут, используйте timedelta.

python
from datetime import datetime, timedelta now = datetime.now() future = now + timedelta(days=10) print(f"Дата через 10 дней: {future}")

Как узнать день недели для заданной даты?

python
date_example = datetime(2025, 5, 9) day_of_week = date_example.strftime("%A") print(f"День недели: {day_of_week}") # Выведет 'Friday'

Работа с часовыми поясами (timezone)

Начиная с Python 3.2, модуль datetime поддерживает работу с часовыми поясами.

python
from datetime import datetime, timezone utc_time = datetime.now(timezone.utc) print(f"Текущее UTC время: {utc_time}")

FAQ — Часто задаваемые вопросы

1. Как получить только текущее время без даты?

python
from datetime import datetime current_time = datetime.now().time() print(f"Текущее время: {current_time}")

2. Можно ли узнать високосный ли год?

python
import calendar print(calendar.isleap(2024)) # True, так как 2024 — високосный год

3. Как округлить время до ближайшего часа?

python
now = datetime.now().replace(minute=0, second=0, microsecond=0) print(f"Округлённое время: {now}")

4. Как найти разницу во времени в минутах?

python
from datetime import datetime time1 = datetime(2025, 5, 9, 12, 0) time2 = datetime(2025, 5, 9, 14, 30) delta = time2 - time1 print(f"Разница в минутах: {delta.total_seconds() / 60}")

5. Как получить вчерашнюю дату?

python
from datetime import datetime, timedelta yesterday = datetime.now() - timedelta(days=1) print(f"Вчерашняя дата: {yesterday.date()}")

6. Что делать, если нужно работать с временными зонами более гибко?

Используйте стороннюю библиотеку pytz:

bash
pip install pytz

Пример:

python
from datetime import datetime import pytz timezone = pytz.timezone("Europe/Moscow") moscow_time = datetime.now(timezone) print(f"Текущее время в Москве: {moscow_time}")

Заключение

Модуль datetime — мощный инструмент для работы с датами и временем в Python.

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

Если вы планируете профессионально заниматься анализом данных, веб-разработкой или автоматизацией процессов, знание этого модуля обязательно пригодится.

Новости