Module (82%)
Section (100%)

Основные тезисы

1. Чтобы создать объект date, Вы должны передать аргументы года, месяца и дня следующим образом:

from datetime import date my_date = date(2020, 9, 29) print("Year:", my_date.year) # Year: 2020 print("Month:", my_date.month) # Month: 9 print("Day:", my_date.day) # Day: 29

Объект date имеет три атрибута (только для чтения): год, месяц и день.


2. Метод today возвращает объект даты, представляющий текущую местную дату:

from datetime import date print("Today:", date.today()) # Displays: Today: 2020-09-29


3. В Unix отметка времени выражает количество секунд с 1 января 1970 г., 00:00:00 (UTC). Эту дату называют "эпохой Unix", потому что с нее начался отсчет времени в системах Unix. Временная метка на самом деле представляет собой разницу между определенной датой (включая время) и 1 января 1970 года, 00:00:00 (UTC), выраженную в секундах. Чтобы создать объект даты из метки времени, мы должны передать метку времени Unix методу fromtimestamp:

from datetime import date import time timestamp = time.time() d = date.fromtimestamp(timestamp)

Примечание: функция time возвращает количество секунд с 1 января 1970 г. до текущего момента в виде числа с плавающей запятой.


4. Конструктор класса time принимает шесть аргументов (hour, minute, second, microsecond, tzinfo и fold). Каждый из этих аргументов является необязательным.

from datetime import time t = time(13, 22, 20) print("Hour:", t.hour) # Hour: 13 print("Minute:", t.minute) # Minute: 22 print("Second:", t.second) # Second: 20


5. Модуль time содержит функцию sleep, которая приостанавливает выполнение программы на заданное количество секунд, например:

import time time.sleep(10) print("Hello world!") # This text will be displayed after 10 seconds.


6. В модуле datetime дата и время могут быть представлены либо как отдельные объекты, либо как один объект. Класс, объединяющий дату и время, называется datetime. Все аргументы, переданные конструктору, переходят в атрибуты класса только для чтения. Это year, month, day, hour, minute, second, microsecond, tzinfo и fold:

from datetime import datetime dt = datetime(2020, 9, 29, 13, 51) print("Datetime:", dt) # Displays: Datetime: 2020-09-29 13:51:00


7. Метод strftime принимает только один аргумент в виде строки, определяющей формат, который может состоять из директив. Директива - это строка, состоящая из символа % (процент) и буквы нижнего или верхнего регистра. Ниже приведены некоторые полезные директивы:

  • %Y - возвращает год с столетием в виде десятичного числа;
  • %m - возвращает месяц в виде десятичного числа с нулями;
  • %d - возвращает день в виде десятичного числа с нулями;
  • %H - возвращает час в виде десятичного числа с нулями;
  • %M - возвращает минуты в виде десятичного числа с нулями;
  • %S - возвращает секунду как десятичное число с нулевым дополнением.

Пример:

from datetime import date d = date(2020, 9, 29) print(d.strftime('%Y/%m/%d')) # Displays: 2020/09/29


8. Можно выполнять вычисления для объектов date и datetime, например:

from datetime import date d1 = date(2020, 11, 4) d2 = date(2019, 11, 4) d = d1 - d2 print(d) # Displays: 366 days, 0:00:00. print(d * 2) # Displays: 732 days, 0:00:00.

Результат вычитания возвращается как объект timedelta, который выражает разницу в днях между двумя датами в примере выше.

Обратите внимание, что также отображается разница в часах, минутах и секундах. Объект timedelta можно использовать для дальнейших вычислений (например, Bы можете умножить его на 2).




Упражнение 1

Что выведет следующий код?

from datetime import time t = time(14, 39) print(t.strftime("%H:%M:%S"))



Упражнение 2

Что выведет следующий код?

from datetime import datetime dt1 = datetime(2020, 9, 29, 14, 41, 0) dt2 = datetime(2020, 9, 28, 14, 41, 0) print(dt1 - dt2)