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

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

  1. календарь выводит календарь и связанные с ним функции в соответствии с григорианским календарем.
  2. время предоставляет функции, связанные со временем, но не с датой.
  3. datetime: предоставляет классы для управления датами и временем.

Сегодня мы сосредоточимся на модуле datetime, а не на двух других модулях. Он прост в использовании и более гибок, чем другие модули.

Классы даты и времени в модуле

В этом модуле есть четыре класса, которые занимаются датой и временем.

  • Класс datetime представляет определенную дату и время. Он включает в себя такие атрибуты, как год, месяц, день, час, минута, секунда и микросекунда.
  • Класс date представляет дату (год, месяц и день) без информации о времени.
  • Класс time представляет время (часы, минуты, секунды и микросекунды) без информации о дате.
  • Класс timedelta представляет продолжительность или разницу между двумя датами или временем.

Получение текущей даты и времени

from datetime import datetime

current_datetime = datetime.now()
print(current_datetime) #2022-08-05 11:26:48.252169

Здесь объект datetime импортируется из модуля, а current_datetime сохраняет текущее время с помощью функции now() для объекта.

Создание объектов даты и времени

from datetime import datetime, date, time

dt = datetime(2022, 1, 1, 12, 30, 0) # (year,month,date,hour,minutes,seconds)
d = date(2022, 1, 1) # (year,month,day)
t = time(12, 30, 0) # (hour,minutes,seconds)

Вы можете создавать объекты datetime, date и time, используя соответствующие конструкторы.

Форматирование даты и времени

from datetime import datetime

dt = datetime(2022, 1, 1, 12, 30, 0)
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S") 
print(formatted_dt) # 2022-01-01 12:30:00

Вы можете вызвать функцию strftime() для объекта datetime, чтобы отформатировать дату в виде строки.

Разбор строк в объекты даты и времени

from datetime import datetime

dt_str = "2022-01-01 12:30:00"
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S")
print(dt) # 022-01-01 12:30:00

Вы можете использовать функции strptime() со строкой datetime и форматом в качестве аргументов для преобразования строки в объект datetime.

Арифметика даты и времени

from datetime import datetime, timedelta

dt1 = datetime(2022, 1, 1)
dt2 = dt1 + timedelta(days=7)
print(dt2)# 2022-01-08 00:00:00

Вы можете использовать объект timedelta() с часами, днями, месяцами, секундами и т. д. для выполнения арифметических операций (суммы и разницы) с объектом datetime().

Он также предоставляет различные методы для сравнения дат и времени, извлечения определенных компонентов и работы с часовыми поясами. Я рекомендую вам обратиться к документации Python для получения более подробной информации и примеров эффективного использования модуля datetime.