Модуль datetime

Python3 предлагает возможность работы с датой и временем с использованием модуля datetime.
Как и во всех модулях, чтобы использовать его, мы сначала должны импортировать его:
import datetime

Данная функция получит текущую дату и время на момент исполнения:

 now = datetime.datetime.now()

Если мы напечатаем now, то результат для объекта datetime будет представлен в доступной форме для чтения человеком:
print(now)
Результат:

 2017-01-28 14: 41: 50.555328

Мы можем получить от него отдельные элементы. Например, если нас интересует только год:

 print(now.year)

Результат:

2017

Мы можем работать с продолжительностью времени, используя класс timedelta. Определим d как продолжительность 1 дня:

 from datetime import timedelta
 d = timedelta(days=1)
 print(d)

Результат:

 1 day, 0:00:00

В школе мы все узнали, что день равен 86400 секунд. Мы можем проверить это, используя метод total_seconds ().

 d.total_seconds()

Результат:

86400.0

Теперь, когда у нас есть этот инструмент, давайте создадим 2 новых объекта datetime для вчера и завтра.

 yesterday = now - d
 tomorrow = now + d
 print('Yesterday:', yesterday)
 print('Tomorrow:', tomorrow)

Результат:

 Yesterday: 2017-01-27 14:41:50.555328
 Tomorrow: 2017-01-29 14:41:50.555328

Мы можем получить timedelta, вычитая два datetime:

d2 = tomorrow - yesterday
print(type(d2), d2)

Результат:

<class 'datetime.timedelta'> 2 days, 0:00:00

Мы можем выполнять операции с объектами timedelta. Попробуем деление:

 print(d2 / d)

Результат:

2.0

Все поддерживаемые операции между двумя объектами datetime можно найти в официальной документации на python: https://docs.python.org/3/library/datetime.html#datetime.timedelta

Создаем особые datetime

Иногда, полезно иметь возможность создания datetime, который не является now().

Мы могли бы использовать конструктор datetime:

 datetime.datetime(year=2017, month=1, day=28,
 hour=15, minute=0, second=0)

Результат:

datetime.datetime(2017, 1, 28, 15, 0)

Следующий код делает то же самое, однако он менее явный, и вам следует уважать порядок аргументов:

 datetime.datetime(2017, 1, 28, 15, 0, 0)

Результат:

 datetime.datetime(2017, 1, 28, 15, 0)

Мы также можем создать datetime из строки. Это особенно полезно, если вам нужно разобрать текстовый файл, содержащий даты с определенным форматом:

Первый аргумент – строковое представление даты и времени, например, 13 февраля 2017 года – 15:00.
Второй аргумент представляет собой строку, которая описывает формат, применяемый с использованием определенных «кодов формата», таких как %Y для всего года.

Список доступных кодов формата можно найти здесь

datetime.datetime.strptime('28 Jan 2017 - 15:00', '%d %b %Y - %H:%M')

Результат:

datetime.datetime(2017, 1, 28, 15, 0)

Мы надеемся, что это небольшое введение в datetime python3 поможет вам легко работать с датами и временем.

Чтобы узнать полный потенциал модуля datetime  читайте документацию python

Поделитесь с друзьями:

Оставьте комментарий