В этом уроке по основам Python вы ознакомитесь с использованием модуля datetime
. Основная задача модуля datetime - упрощение доступа к дате и времени.
Модуль datetime
предоставляет три класса:
datetime.date
- класс отвечает за вывод даты, по григорианскому календарю.datetime.time
- класс отвечает за вывод времени, в этом объекте хранятся сведения о часовом поясе.datetime.datetime
- класс, комбинирующий в себе дату и время. Объект имеет атрибуты обоих классов.
Пример использования:
from datetime import date, time, datetime
date_var = date(year=2022, month=10, day=17)
print(date_var)
time_var = time(hour=21, minute=18, second=17)
print(time_var)
datetime_var = datetime(year=2022, month=10, day=17, hour=21, minute=18, second=31)
print(datetime_var)
Результат:
>>> 2022-10-17
>>> 21:18:17
>>> 2022-10-17 21:18:31
Пояснение:
В этом коде мы импортировали каждый класс, из которых мы создали экземляры передавая определенные аргументы конструктору. Чтобы создавать данные экземпляры, Вам нужно обязательно передавать известные аргументы.
Методы данных классов:
date.today()
создает экземпляр с текущей локальной датой.datetime.now()
создает экземпляр с текущей локальной датой и временем.datetime.combine()
объединяет экземпляры и в один экземпляр.
Рассмотрим пример с методами:
from datetime import date, time, datetime
today = date.today()
print(today)
now = datetime.now()
print(now)
current_time = time(now.hour, now.minute, now.second)
print(current_time)
combine_date = datetime.combine(today, current_time)
print(combine_date)
Результат:
>>> 2022-10-17
>>> 2022-10-17 21:24:27.515016
>>> 21:24:27
>>> 2022-10-17 21:24:27
Пояснение:
today
- это экземпляр, который имеет только год, месяц и день.now
— это экземпляр, который имеет год, месяц, день, час, минуту, секунду и микросекунды.current_time
- экземпляр, для которого час, минута и секунда имеют те же значения, что иnow
.
Объект datetime
может выводить время в удобном для нас строковом виде с помощью метода strftime()
Пример strftime():
from datetime import date, time, datetime
today = date.today()
print(today.strftime('%x'))
now = datetime.now()
print(now.strftime('%d %B %Y %H:%M:%S %p'))
current_time = time(now.hour, now.minute, now.second)
print(current_time.strftime('%H:%M:%S %p'))
combine_date = datetime.combine(today, current_time)
print(combine_date.strftime('%d %B %Y'))
Результат:
>>> 10/17/22
>>> 17 October 2022 21:34:11 PM
>>> 21:34:11 PM
>>> 17 October 2022
Таблица форматирования:
Символ | Описание | Пример |
---|---|---|
%a | День недели, короткий вариант | Wed |
%A | Будний день, полный вариант | Wednesday |
%w | День недели числом 0-6, 0 — воскресенье | 3 |
%d | День месяца 01-31 | 31 |
%b | Название месяца, короткий вариант | Dec |
%B | Название месяца, полное название | December |
%m | Месяц числом 01-12 | 12 |
%y | Год, короткий вариант, без века | 18 |
%Y | Год, полный вариант | 2018 |
%H | Час 00-23 | 17 |
%I | Час 00-12 | 05 |
%p | AM/PM | PM |
%M | Минута 00-59 | 41 |
%S | Секунда 00-59 | 08 |
%f | Микросекунда 000000-999999 | 548513 |
%z | Разница UTC | +0100 |
%Z | Часовой пояс | CST |
%j | День в году 001-366 | 365 |
%U | Неделя числом в году, Воскресенье первый день недели, 00-53 | 52 |
%W | Неделя числом в году, Понедельник первый день недели, 00-53 | 52 |
%c | Локальная версия даты и времени | Mon Dec 31 17:41:00 2018 |
%x | Локальная версия даты | 12/31/18 |
%X | Локальная версия времени | 17:41:00 |
%% | Символ “%” | % |