Класс datetime позволяет описывать данные об определенном моменте во времени, который учитывает не только часы и минуты, но и сведения о дате. Как и в случае с предыдущими типами объектов, здесь используется конструктор с несколькими аргументами под каждое значение. В следующем примере демонстрируется программа, где переменная под именем a получает объект из стандартного конструктора datetime, после выводит свое значение и тип.
import datetime
c = datetime.datetime(2022, 7, 18, 4, 52, 33, 51204)
print(c)
print(type(c))
2022-07-18 04:52:33.051204
Создавать объекты можно с разным набором параметров, указывая только нужные сведения. Отсутствующие данные по умолчанию будут заполнены нулями. Приведенный ниже код показывает, как создаются два объекта a и b, первый из которых изначально содержит только дату, а второй обладает информацией о дате и о времени.
import datetime
a = datetime.datetime(2022, 2, 13)
b = datetime.datetime(2022, 10, 25, 12, 8, 47)
print(a)
print(b)
2022-02-13 00:00:00
2022-10-25 12:08:47
Получить текущий момент времени можно при помощи двух разных методов, один из которых уже использовался ранее в date. Следующий код демонстрирует вызов функций today и now, возвращающих в Python текущую дату и время с точностью до микросекунд. Метод print как обычно позволяет отобразить эти сведения на дисплее.
import datetime
a = datetime.datetime.today()
b = datetime.datetime.now()
print(a)
print(b)
2022-11-08 11:12:53.256261
2022-11-08 11:12:53.256270
2.2.Простая арифметика даты. Использование базовых объектов datetime
Существует определенный формат, в котором дата и время выводятся по умолчанию, но данное представление не всегда удовлетворяет запросы пользователя.
Чтобы в Python преобразовать дату и время в строку нужного формата, следует воспользоваться методом strftime, указав ему в качестве аргумента параметры форматирования. Как можно понять из примера, который находится ниже, за воспроизведение информации о количестве дней или минут отвечают специальные зарезервированные символы, идущие следом за знаком процента.
Стоит заметить, что здесь создаются два совершенно идентичных объекта при помощи метода today. Однако, благодаря работе функции strftime, каждый из них получает свою форму для вывода на экран (день, месяц и год для переменной a, час, минута, секунда для переменной b). После этого метод print отображает сведения в заданном ранее формате.
import datetime
a = datetime.datetime.today().strftime("%d.%m.%Y")
b = datetime.datetime.today().strftime("%H:%M:%S")
print(a)
print(b)
08.11.2022
11:41:04
Доступные типы форматов для вывода через консоль располагаются в следующей таблице. Здесь можно найти их обозначения, а также краткое описание того, что именно они делают.
Формат
|
Значение
|
%a
|
название дня недели в сокращенном виде
|
%A
|
название дня недели в полном виде
|
%w
|
номер дня недели в виде целого числа
|
%d
|
номер дня месяца в виде целого числа
|
%b
|
название месяца в сокращенном виде
|
%B
|
название месяца в полном виде
|
%m
|
номер месяца в числовом представлении
|
%y
|
номер года без столетия
|
%Y
|
номер года в полном представлении
|
%H
|
количество часов в 24-часовом формате
|
%I
|
количество часов в 12-часовом формате
|
%p
|
до полудня или после полудня в 12-часовом формате
|
%M
|
количество минут в виде целого числа
|
%S
|
количество секунд в виде целого числа
|
%f
|
количество микросекунд в виде целого числа
|
%z
|
часовой пояс в формате UTC
|
%Z
|
название часового пояса
|
%j
|
номер дня в году
|
%U
|
номер недели в году, если считать с воскресенья
|
%w
|
номер недели в году, если считать с понедельника
|
%c
|
местное представление даты и времени
|
%x
|
местное представление даты
|
%X
|
местное представление времени
|
%%
|
символ процента
|
Как и в случае с time и date, в классе datetime пользователь в состоянии получать доступ к отдельным свойствам созданного объекта (годам, месяцам, дням, часам, минутам, секундам и микросекундам. В следующем примере кода демонстрируется вывод данных значений.
import datetime
a = datetime.datetime(2022, 3, 27, 8, 12, 24, 34574)
print(a.year)
print(a.month)
print(a.day)
print(a.hour)
print(a.minute)
print(a.second)
print(a.microsecond)
2022
3
27
8
12
24
34574
Сформировать новый объект типа datetime можно и с помощью двух разных объектов, представляющих время и дату (time и date). Для этого используется функция combine. В следующем примере показывается как переменные a и b получают некоторые значения, после чего передаются методу combine в качестве двух параметров.
from datetime import datetime, date, time
a = date(2022, 3, 19)
b = time(2, 10, 43)
c = datetime.combine(a, b)
print(c)
2022-03-19 02:10:43
Do'stlaringiz bilan baham: |