Метод python .timestamp () вычисляет неверное (или одинаковое) время unix для разных часовых поясов - PullRequest
0 голосов
/ 08 июня 2019

Моя цель - конвертировать UTM в местное время, а затем в Unix. Это оригинальное время:

import pandas as pd
pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S')
Timestamp('2019-04-26 21:38:11')

Добавление дополнительной информации

>>> pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S').tz_localize('UTC')
Timestamp('2019-04-26 21:38:11+0000', tz='UTC')

преобразование в местное время Аляски:

>>> pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S').tz_localize('UTC').tz_convert(pytz.timezone("America/Anchorage"))
Timestamp('2019-04-26 13:38:11-0800', tz='America/Anchorage')

До этого все хорошо. Но когда я конвертирую правильное местное время в время Unix, перезапуск происходит в UTC, а не в местное время Аляски:

>>>pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S').tz_localize('UTC').tz_convert(local).timestamp()
1556314691.0

Когда это должно быть

1556314691.0-8 * 3600 = 1556285891.0 # 8 в течение восьми часов дневного времени Аляски.

Фактически, я получаю одну и ту же метку времени Unix независимо от часового пояса:

>>> pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S').tz_localize('UTC').timestamp()
1556314691.0

Неужели meothod метки времени () не может правильно прочитать часовой пояс?

спасибо

1 Ответ

1 голос
/ 08 июня 2019

Метка времени UNIX разработана независимо от часового пояса. См. Эту ветку Изменяются ли временные метки Unix в разных часовых поясах?

Ваш код конвертирует одно и то же время в два разных часовых пояса, но их метки времени UNIX остаются прежними.

...