Перейти к основному содержимому

Даты в Python

В Python нет отдельного типа данных для дат. Вместо этого вы импортируете модуль datetime и работаете с датами как с объектами даты.

Пример

Выведите текущую дату, импортировав модуль datetime:
Prompt
Импортируйте модуль datetime и выведите текущие дату и время с помощью datetime.datetime.now().
Вывод: полная программа на Python

Вывод даты

Вывод, который вы видите, получен при выполнении кода из предыдущего примера.

Такое значение даты состоит из года, месяца, дня, часа, минуты, секунды и микросекунды.

Многие методы модуля datetime могут рассказать об объекте даты больше.

Вот небольшой пример; остальная часть урока расскажет о них подробнее:

Пример

Выведите год и название дня недели:
Prompt
Импортируйте модуль datetime и получите текущую дату. Выведите год и название дня недели с помощью strftime("%A").
Вывод: полная программа на Python

Создание объектов даты

Чтобы создать дату, вы вызываете класс datetime() — конструктор из модуля datetime.

Ему нужны три параметра: год, месяц и день.

Также можно передать значения времени и часового пояса (час, минута, секунда, микросекунда, tzinfo). Они необязательны и по умолчанию равны 0, а часовой пояс — None.

Пример

Создайте объект даты:
Prompt
Импортируйте модуль datetime и создайте объект даты для 17 мая 2020 года. Используйте datetime.datetime(2020, 5, 17) и выведите его.
Вывод: полная программа на Python

Метод strftime()

Чтобы превратить объект даты в удобочитаемую строку, используйте метод объекта datetime.

Этот метод называется strftime(). Его единственный параметр, format, описывает, как должна выглядеть возвращаемая строка:

Вот коды формата, которые вы можете использовать:

  • %a - Краткое название дня недели (Wed)
  • %A - Полное название дня недели (Wednesday)
  • %w - Номер дня недели 0-6, воскресенье — 0 (3)
  • %d - День месяца, 01-31 (31)
  • %b - Краткое название месяца (Dec)
  • %B - Полное название месяца (December)
  • %m - Номер месяца, 01-12 (12)
  • %y - Год из двух цифр, без века (18)
  • %Y - Год из четырёх цифр (2018)
  • %H - Час в 24-часовом формате, 00-23 (17)
  • %I - Час в 12-часовом формате, 01-12 (05)
  • %p - AM или PM (PM)
  • %M - Минута, 00-59 (41)
  • %S - Секунда, 00-59 (08)
  • %f - Микросекунда, 000000-999999 (548513)
  • %z - Смещение относительно UTC (+0100)
  • %Z - Название часового пояса (CST)
  • %j - День года, 001-366 (365)
  • %U - Неделя года, 00-53, недели начинаются с воскресенья (52)
  • %W - Неделя года, 00-53, недели начинаются с понедельника (52)
  • %c - Дата и время в локальном формате (Mon Dec 31 17:41:00 2018)
  • %C - Век (20)
  • %x - Дата в локальном формате (12/31/18)
  • %X - Время в локальном формате (17:41:00)
  • %% - Символ % как есть (%)
  • %G - Год ISO 8601 (2018)
  • %u - Номер дня недели в ISO 8601, 1-7 (1)
  • %V - Номер недели ISO 8601, 01-53 (01)

Пример

Выведите полное название месяца:
Prompt
Импортируйте модуль datetime и создайте объект даты для 1 июня 2018 года. Используйте strftime("%B"), чтобы вывести полное название месяца.
Вывод: полная программа на Python