Модуль datetime в Python

Статьи

Введение

Модуль 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 и его основными методами. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start