Введение
Модуль datetime в Python является встроенным модулем, который предоставляет функциональность для работы с датами и временем. Он содержит классы и функции для представления, манипулирования и форматирования даты и времени. В данной статье подробнее познакомимся с модулем datetime.
Получение текущей даты и времени
Для получения текущей даты и времени можно воспользоваться функцией now():
import datetime
# Получение текущей даты и времени
now = datetime.datetime.now()
print(now) # Вывод 2023-10-05 17:23:12.180632
Чтобы получить только текущее время — можно сначала получить дату и время, а затем воспользоваться методом time():
import datetime
# Получение текущей даты и времени
date_time = datetime.datetime.now()
# Получение времени
current_time = date_time.time()
print(current_time) # Вывод: 17:33:15.750124
Точно также можно отдельно получить и дату:
import datetime
# Получение текущей даты и времени
date_time = datetime.datetime.now()
# Получение даты
current_time = date_time.date()
print(current_date) # Вывод: 2023-10-05
Также дату можно получить с помощью метода date():
import datetime
# Получение текущей даты
current_date = datetime.date.today()
print(current_date) # Вывод: 2023-10-05
Создание объекта времени
Для создания объекта времени datetime существует класс time(). В соответствующих параметрах нужно указать часы, минуты и секунды:
import datetime
# Создание объекта времени datetime с помощью метода time()
time_obj = datetime.time(hour=14, minute=30, second=0)
print(time_obj) # Вывод: 14:30:00
Создание объекта даты и времени
Если нужно создать объект datetime с указанной датой и временем, можете использовать класс datetime:
import datetime
# Создание объекта datetime с указанной датой и временем
dt_obj = datetime.datetime(year=2023, month=10, day=5, hour=14, minute=30, second=0)
print(dt_obj) # Вывод: 2023-10-05 14:30:00
Получение разницы между двумя датами или временем (Класс timedelta)
timedelta() — это класс в модуле datetime, который представляет разницу между двумя датами или временем. Он позволяет выполнять арифметические операции с датами и временем, такие как сложение или вычитание определенного количества времени.
import datetime
# Создание объекта timedelta с указанной разницей во времени
td_object = datetime.timedelta(days=5, seconds=5, microseconds=4, milliseconds=1, minutes=10, hours=2, weeks=5)
print(td_object) # Вывод: 40 days, 2:10:05.001004
Также можно получить разницу между текущей датой или временем и указанной в timedelta():
from datetime import datetime, timedelta
# Создание объекта timedelta с разницей в 12 часов
delta = timedelta(hours=12)
# Получение текущей даты и времени
now = datetime.now()
# Добавление разницы времени к текущей дате и времени
new_datetime = now + delta
print(new_datetime) # Вывод: 2023-10-06 05:55:57.642563
Форматирование даты и времени
Для форматирования даты и времени в определённом формате в модуле datetime есть метод strftime(). Он принимает объект datetime() и возвращает строку, отформатированную в соответствии с указанным форматом:
import datetime
# Получение текущей даты и времени
current_date = datetime.datetime.now()
print(current_date.strftime('%Y-%m-%d')) # Вывод: 2023-10-05
print(current_date.strftime('%Y/%m/%d')) # Вывод: 2023/10/05
print(current_date.strftime('%Y.%m.%d')) # Вывод: 2023.10.05
print(current_date.strftime('%H:%M:%S')) # Вывод: 17:28:38
print(current_date.strftime('%m/%d/%y %H:%M:%S')) # Вывод: 10/05/23 17:28:38
- %Y: год (четыре цифры)
- %m: месяц (две цифры)
- %d: день (две цифры)
- %H: час (24-часовой формат)
- %M: минуты
- %S: секунды
Также можно воспользоваться методом strptime(). Он принимает строку и формат даты/времени, возвращая объект datetime, созданный на основе указанной строки:
import datetime
# Форматирование объекта datetime в строку
now = datetime.datetime.now()
formatted_date = now.strftime("%d.%m.%Y")
formatted_time = now.strftime("%H:%M:%S")
print(formatted_date) # Вывод: 05.10.2023
print(formatted_time) # Вывод: 18:07:19
# Преобразование строки в объект datetime
date_string = "09/23/2030 8:28"
date_object = datetime.datetime.strptime(date_string, "%m/%d/%Y %H:%M")
print(date_object) # Вывод: 2030-09-23 08:28:00
Заключение
В ходе статьи мы с Вами познакомились с модулем datetime и его основными методами. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂
Мой Telegram канал
Мой YouTube канал
Курс по созданию телеграм-ботов на Python с фреймворком Aiogram