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