Задать вопрос
@SamKnight

Как изменить UTC время на местное в Python?

Не смог найти в интернете работающий способ изменить время или просто у меня что то не получается в связи с нехваткой знаний. Вот код получения данных:

def getminutedata(symbol, interval, lookback):

     frame = pd.DataFrame(client.get_historical_klines(symbol, interval, lookback + 'min ago UTC'))
     frame = frame.iloc[:,:6]
     frame.columns = ['Time', 'Open', 'High', 'Low', 'Close', 'Volume']
     frame = frame.set_index('Time')
     frame.index = pd.to_datetime(frame.index, unit='ms')
     frame = frame.astype(float)
     return frame


Данная функция возвращает время в UTC. Как мне конвертировать его в местное время, например в Екатеринбург?
  • Вопрос задан
  • 196 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@SamKnight Автор вопроса
Необходимо строчку

frame.index = pd.to_datetime(frame.index, unit='ms')


заменить на строчку

frame.Time = pd.to_datetime(frame.Time, unit='ms').apply(lambda x: x.tz_localize('UTC').tz_convert('Asia/Yekaterinburg')).dt.strftime("%Y-%m-%d %H:%M:%S")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
C python не знаком, но я бы попробовал это:
....
     frame = frame.set_index('Time')
     # начало кода
     # нужно подключить from dateutil import tz
     # узнаем utc и локальную зону
     from_zone = tz.tzutc()
     to_zone = tz.tzlocal()
     # устанавливаем врем. зону по молчанию (если требуется)
     frame.index = frame.index.replace(tzinfo=from_zone)
     # перевод врем. зоны
     frame.index = frame.index.astimezone(to_zone)
     #конец кода
     frame.index = pd.to_datetime(frame.index, unit='ms')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы