страны южного полушария переводят свои часы вперед, когда страны северного
полушария переводят их назад, и наоборот (если вы немного задумаетесь, то пой-
мете, почему так происходит).
Стандартная библиотека Python имеет множество модулей для работы с датой
и временем: datetime, time, calendar, dateutil и др. Их функции немного пересека-
ются друг с другом, и это может создать путаницу.
Модуль datetime
Начнем с рассмотрения стандартного модуля datetime. В нем определены четыре
основных объекта, каждый из которых содержит множество методов:
date для годов, месяцев и дней;
time для часов, минут, секунд и долей секунды;
Календари и часы
293
datetime для даты и времени одновременно;
timedelta для интервалов даты и/или времени.
Вы можете создать объект date, указав год, месяц и день. Эти значения будут
доступны как атрибуты:
>>> from datetime import date
>>> halloween = date(2014, 10, 31)
>>> halloween
datetime.date(2014, 10, 31)
>>> halloween.day
31
>>> halloween.month
10
>>> halloween.year
2014
Вы можете вывести на экран содержимое объекта date с помощью его метода
isoformat():
>>> halloween.isoformat()
'2014-10-31'
iso в данном контексте ссылается на ISO 8601 — международный стандарт для
представления даты и времени. В этом формате мы записываем дату, начиная с само-
го общего элемента (год) и заканчивая самым точным (день). С его помощью можно
также корректно отсортировать даты: сначала по году, затем по месяцу, затем по дню.
Я обычно выбираю этот формат для представления данных в программах и для имен
файлов, которые сохраняют данные по дате. В следующем разделе будут показаны
более сложные методы strptime() и strftime() для анализа и форматирования дат.
В этом примере метод today() используется для генерации сегодняшней даты:
>>> from datetime import date
>>> now = date.today()
>>> now
datetime.date(2014, 2, 2)
В следующем примере объект timedelta используется для того, чтобы добавить
к объекту date некоторый временной интервал:
>>> from datetime import timedelta
>>> one_day = timedelta(days=1)
>>> tomorrow = now + one_day
>>> tomorrow