Управление временем может стать одним из ключевых факторов успеха вашей программы. Вы можете написать программу для запуска в облаке и отправить поздравление с днем рождения на чей-то адрес электронной почты с помощью Python. Вы можете написать программу, которая будет отправлять себе электронное письмо каждый день утром, используя API и Python.
В таких случаях вам необходимо манипулировать временем и датой внутри вашей программы, чтобы код работал так, как задумано. Вам будет слишком сложно реализовать эти функции и методы в своей программе с нуля. К счастью, Python поставляется с тремя основными встроенными модулями, связанными со временем и датой:
- календарь выводит календарь и связанные с ним функции в соответствии с григорианским календарем.
- время предоставляет функции, связанные со временем, но не с датой.
- 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
.