Библиотека DateTime и ее класс DateTime используются в алготрейдинге практически всегда. Ведь любая сделка, любая свечка(бар) так или иначе завязаны на временные показатели.
DataTime
DateTime – это библиотека в Python для работы с датой и временем. Она позволяет удобно манипулировать датами и временем – получать, преобразовывать, сравнивать, вычислять разницу и выводить в нужном формате.
Наиболее востребованы следующие классы модуля:
- date – простая дата, содержит год, месяц и день
- time – время в течение дня, содержит часы, минуты, секунды и микросекунды
- datetime – комбинация полной даты и времени
- timedelta – промежуток времени, разность между двумя датами/временами
- tzinfo – абстрактный класс для представления информации о часовом поясе
- timezone – реализация tzinfo, представляет смещение от UTC
Нам достаточно сейчас остановиться на классах date, time, datetime и timedelta, которые решают общие задачи по работе с временем при разработке различных приложений.
В начале файла вашего скрипта обязательно импортируйте библиотеку datetime, а чтобы сократить запись в коде нашей программы импортируем сразу все необходимые нам классы:
Таким образом мы сможем в тексте сократить записи, к примеру вместо “datetime.date.today()” писать просто “date.today()”
Класс date
создадим объект даты
можно узнать текущую дату:
можно получить компоненты даты:
Класс time
Класс time из модуля datetime в Python предназначен для работы со временем.
Создадим объект времени:
Получим компоненты времени:
Сравним два времени:
Класс datetime
Наиболее часто используемый класс
Создадим объект даты и времени
Получим компоненты даты/времени:
Получение текущей даты и времени/
Метод datetime.now() возвращает объект datetime, с текущей датой и временем.
При вызове без аргументов – возвращает локальную дату и время:
Класс timedelta
timedelta() представляет собой продолжительность промежутка времени, по сути это интервал времени. Аргумент может быть выражен в weeks, days, hours, minutes, seconds, microseconds, milliseconds.
Создадим объект
Вычитание двух дат возвращает timedelta
Правильным будет также вычитание дат явным конструированием timedelta
а вот прибавлять две даты нельзя, что собственно логично. Прибавлять можно только дату и период timedelta
# TypeError: unsupported operand type(s) for +: 'datetime.date' and 'datetime.date'
timedelta имеет метод total_seconds() – количество секунд в интервале времени.
Метод total_seconds() полезен для случаев, когда нужно преобразовать timedelta в секунды:
Также метод total_seconds() можно использовать, когда надо найти разницу между датой (временем) в секундах:
Форматирование объектов даты и времени
Модуль datetime предоставляет гибкие возможности по форматированию объектов даты и времени при выводе в виде строк.
Для преобразования объекта даты/времени – в “человекочитаемую” строку используется метод strftime().
Основной синтаксис:
datetime_object.strftime(format) возвращает отформатированную дату/время как строку. Здесь format задает желаемый формат с помощью специальных символов-заполнителей:
%A – полное текстовое название дня недели
%B – полное текстовое название месяца
%b – сокращенное название месяца
%d – день
%m – месяц
%Y – год из 4 цифр
%y – только последние 2 цифры года
%H – часы
%M – минуты
%S – секунды
Комбинируя заполнители, можно гибко настроить нужный вывод даты и времени. Например:
Чтобы вывести отформатировать дату с полным названием дня недели и месяца на русском языке в Python, нужно использовать библиотеку locale
Для решения противоположной задачи – для преобразования строки в объект даты/времени используется метод strptime().
Итак, функция strptime() в модуле datetime в Python используется для преобразования строки даты и времени в объект datetime по заданному формату.
Например:
На этом все. Материала для начала работы более, чем достаточно. Еще раз посмотрите самое главное: классы datetime(), timedelta() и функции strftime(), strptime().
--------------------------------
Весь листинг можно скопировать с оригинала статьи https://clck.ru/36wsAE
ПОДПИШИСЬ на телеграмм канал автора "АЛГОТРЕЙДИНГ на PYTHON"
Видео по теме: