Для того чтобы в программах на 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