В предыдущей записи мы познакомились с библиотеками и способами их подключения. Теперь рассмотрим одну из библиотек подробнее.
Для работы со временем используем библиотеку datetime. В этой библиотеке помимо функций есть свой тип данных. Причём его название точно совпадает с именем библиотеки. Поэтому создание объекта этого типа выглядит так:
Чтобы не путать библиотеку и тип данных в ней, можно использовать импорт библиотеки с присваиванием нового имени:
Теперь посмотрим на результат:
Что же мы передали в скобках при создании объекта datetime (слева направо):
- год
- месяц
- день
- час
- минуты
- секунды
Можно также указать и микросекунды.
Год, месяц и день – обязательные аргументы. Остальные аргументы являются необязательными и по умолчанию равны нулю.
Даты, созданные вышеуказанным способом, можно вычитать друг из друга. Давайте скорее попробуем сделать это.
Вот так просто получаем разницу:
У типа данных datetime есть метод, который возвращает текущее время по стандарту UTC с точностью до микросекунд.
UTC – "coordinated universal time" – всемирное координированное время
Это метод utcnow().
Получим текущее время:
Кстати, метод utcnow() можно применить к любой переменной типа datetime.
И ещё один нюанс. Время, которое возвращает метод utcnow(), может не соответствовать вашему текущему времени. У меня, например, разница составляет 3 часа. Дело в разнице часовых поясов: utcnow() возвратил значение времени в нулевом по UTC часовом поясе, который отстаёт от московского на 3 часа. Исправим данную погрешность, прибавим 3 часа к результату.
Чтобы сделать это необходимо использовать тип timedelta(), который позволяет сохранить определённый промежуток времени:
В timedelta() можно указать следующие значения:
- days
- hours
- minutes
- seconds
- microseconds
Например, так:
Решил добавить сюда ещё немного информации о форматировании времени.
Давайте получим время в привычном формате, например, 12:45. В этом нам поможет метод strftime().
Получим время в привычном виде:
Можно использовать следующие параметры:
- %S – секунды
- %M – минуты
- %H – часы
- %B – месяц по-английски
- %Y – год
- %A – название дня недели по-английски
- %U – номер недели в году
А на этом пока всё. Если есть вопросы, пишите в комментариях, будем разбираться.