Проблемы со временем и python

 

Добрый день, товарищи программисты и не только! Проблема заключается в том, что в терминале показывает одно время, а при получении данных свечей время у меня +3 часа. Хотя местное и серверное время одинаковое. 


  и   


Подскажите, пожалуйста, в чем проблема?

 

+3 - это явно смещение от UTC (GMT). Так что, если не разбираться в проблеме глубже, то достаточно получить смещение локального времени по UTC и на полученное значение корректировать время. 

Ну а по-хорошему нужно разобраться, в каком месте происходит приведение локального времени к UTC.

 

Цитата из книги:

При создании объекта datetime Python использует локальный часовой пояс, в то время как терминал MetaTrader 5 хранит время тиков и открытия баров в UTC (GMT, без смещения). Поэтому, для выполнения функций, использующих время, необходимо создавать переменные datetime в UTC-времени. Для настройки таймзон можно использовать пакет pytz. Например (см. MQL5/Scripts/MQL5Book/Python/eurusdrates.py)

Учебник по MQL5: Расширенные средства языка / Встроенная поддержка Python / Чтение котировок
Учебник по MQL5: Расширенные средства языка / Встроенная поддержка Python / Чтение котировок
  • www.mql5.com
Python API позволяет получить массивы цен (баров) с помощью 3 функций, отличающихся способом указания диапазона запрашиваемых данных: по номерам...
 
Ihor Herasko #:

+3 - это явно смещение от UTC (GMT). Так что, если не разбираться в проблеме глубже, то достаточно получить смещение локального времени по UTC и на полученное значение корректировать время. 

Ну а по-хорошему нужно разобраться, в каком месте происходит приведение локального времени к UTC.

В принципе, я так и сделал. Разбирался с проблемой половину дня и упростил задачу. Вычел 3 часа из входящего времени. Спасибо!

 
Iurii Tarasenko #:

В принципе, я так и сделал. Разбирался с проблемой половину дня и упростил задачу. Вычел 3 часа из входящего времени. Спасибо!

Главное чтобы после вычитания вторник необоснованно не стал понедельником. Все же правильно использовать методы python для приведения дат и времени.