Для того чтобы в программах на Python работать с системными временем и датой, может быть подключен модуль datetime. Он содержит объект datetime с атрибутами year, month, day, hour, minute, second, microsecond.

Поскольку объект datetime находится в модуле с тем же именем, простое импортирование модуля означает, что к нему нужно будет обращаться так: datetime.datetime.

Использование инструкции from datetime import * позволит упростить запись до datetime.

Объект datetime содержит метод today(), который присваивает атрибутам объекта значение текущей даты и времени и возвращает их в виде кортежа. Он также содержит метод getattr(), который требует два аргумента, указывающих имя объекта и атрибут, который нужно получить.

from datetime import *
print(datetime.today()) #2019-03-19 16:58:43.058583

Альтернативным способом для доступа к атрибуту может служить точечная запись вида datetime.year.

from datetime import *
today = datetime.today()
print(getattr(today , 'year')) #2019
print(getattr(today , 'month')) #3
print(today.hour) #15
print(today.minute) #5
for attr in \
  ['year','month','day','hour','minute','second','microsecond' ] :
  print(attr , getattr(today , attr))

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

Директива

Возвращаемое значение

%A

Полное название дня недели (%a — для сокращенного)

%B

Полное название месяца (%b — для сокращенного)

%c

Дата и время (локальные)

%d

Порядковый номер дня в месяце от 1 до 31

%f

Количество микросекунд от 0 до 999999

%H

Десятичное представление часа от 0 до 23 (для 24-часового вида)

%I

Десятичное представление часа от 1 до 12 (для 12-часового вида)

%j

Порядковый номер дня в году от 0 до 366

%m

Порядковый номер месяца от 1 до 12

%M

Десятичное представление минут от 0 до 59

%p

Обозначение AM (до полудня) или PM (после полудня)

%S

Десятичное представление секунд от 0 до 59

%w

Порядковый номер дня в неделе от 0 (воскресенье) до 6

%W

Порядковый номер недели в году от 0 до 53

%X

Локальное время (%x — локальная дата)

%Y

Полное десятичное представление года от 0001 до 9999

(%y — для краткого представления от 00 до 99)

%z

Смещение часового пояса от UTC в виде +ЧЧMM или –ЧЧMM

%Z

Название часового пояса

from datetime import *
today = datetime.today()
day = today.strftime('%A')
month = today.strftime('%B')
print('Date:', day, month, today.day) #Date: Tuesday March 19