Как узнать точное время после конвертации из UT C в любой другой часовой пояс в Python? - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть данные со столбцами времени, которые я должен преобразовать из ut c в ist

пример

utc_datetime         tag_value   inserted_at
2018-12-03 16:48:32  3.38        2018-12-03 22:18:48 

Я использовал следующий код для преобразования времени в UT C до IST

data = data.rename(columns={"utc_datetime": "ist_datetime"})
data['ist_datetime'] = pd.to_datetime(data['ist_datetime'], errors='coerce') 
data['ist_datetime'] = pd.to_datetime(data['ist_datetime'], errors='coerce')
data['inserted_at'] = pd.to_datetime(data['inserted_at'], errors='coerce')
data['ist_datetime'] = data['ist_datetime'].dt.tz_localize('UTC').dt.tz_convert('Asia/Kolkata')
data['inserted_at'] = data['inserted_at'].dt.tz_localize('UTC').dt.tz_convert('Asia/Kolkata')

Для которого я получаю вывод, как

enter image description here

Что мне делать чтобы получить точное конвертированное время, а не + 5:30 с исходным временем?

Например: от '16: 18: 32' до '21: 48: 32', а не '16: 18: 32 + 5 : 30 '

Спасибо

1 Ответ

0 голосов
/ 26 апреля 2020

Из вашего комментария, я думаю, вы можете ошибаться в отношении исходных данных.

Например:

import datetime
import pandas as pd

dt = pd.to_datetime([datetime.datetime(2018, 1, 1, 0, 0, 0)])
print(dt)
print(dt.tz_localize('UTC'))
print(dt.tz_localize('UTC').tz_convert('Asia/Kolkata'))

Работает точно так, как вы ожидаете:

DatetimeIndex(['2018-01-01'], dtype='datetime64[ns]', freq=None)
DatetimeIndex(['2018-01-01 00:00:00+00:00'], dtype='datetime64[ns, UTC]', freq=None)
DatetimeIndex(['2018-01-01 05:30:00+05:30'], dtype='datetime64[ns, Asia/Kolkata]', freq=None)

Вы не предоставляете нам исходные данные, только результат, который вы считаете неправильным - вам нужно будет предоставить более полный пример с выводом исходных данных, чтобы прояснить, в чем проблема, если вы все еще верите в это на самом деле один.

...