Преобразование даты и времени из одного часового пояса в другой, используя pytz - PullRequest
0 голосов
/ 26 января 2019

У меня есть набор данных, который включает дату / метки времени из Нью-Йорка БЕЗ информации о часовом поясе.EDT или EST не записываются.

Даты включают ежедневные данные за несколько лет, поэтому они включают в себя:

  1. EDT Timezone
  2. EST Timezone

Я хочу перевести эти метки даты / времени во франкфуртское время.

Это включает использование:

  1. CET Часовой пояс
  2. CEST Часовой пояс

В зависимости от конкретной даты.

Я видел, что для нью-йоркского языка pytz включает timezone('US/Eastern'), который, если я правильно понял, включает в себя оба часовых пояса ( Нью-Йоркские часовые пояса ).

Для Франкфурта кажется, что вам необходимо явно указать CET или CEST ( Франкфуртские часовые пояса ).

Как это преобразование будет выполняться с помощью pytz?

1 Ответ

0 голосов
/ 26 января 2019

Вы можете преобразовать время из Нью-Йорка во время Франкфурта, используя localize() для создания наивных объектов даты и времени в Нью-Йорке и astimezone(), чтобы затем преобразовать их во время Франкфурта (Берлин).Использование названия часового пояса (а не конкретного сокращения часового пояса, которое применяется только в течение части года) будет обрабатывать разницу летнего времени для вас.

Например:

from datetime import datetime
from pytz import timezone

newyork_tz = timezone('America/New_York')
berlin_tz = timezone('Europe/Berlin')

newyork = newyork_tz.localize(datetime(2018, 5, 1, 8, 0, 0))
berlin = newyork.astimezone(berlin_tz)
print(newyork)
print(berlin)
# OUTPUT
# 2018-05-01 08:00:00-04:00
# 2018-05-01 14:00:00+02:00
...