Установка часового пояса Pandas Timestamp для Бойсе - PullRequest
0 голосов
/ 17 марта 2019

Я хочу прочитать в Unix время в метку времени и назначить часовой пояс Бойсе. Текущий часовой пояс: «MDT - Mountain Daylight Time (Летнее время)». Он переключится на MST в зимнее время.

Какой часовой пояс использовать, когда я хочу, чтобы он не зависел от летнего / зимнего времени?

Я хочу что-то подобное

pd.Timestamp(1513393355, unit='s', tz='US/Pacific') 

Ответы [ 2 ]

2 голосов
/ 17 марта 2019

Несколько вещей:

  • Вообще говоря, следует использовать America/Denver для большей части горного времени США, которое в настоящее время переключается между MST (UTC-7) и MDT (UTC-6).

  • Используйте America/Phoenix для той части Горного времени США, которая не в настоящее время использует DST, например, применяется в большинстве (но не во всех)Аризона.

    • Однако, имейте в виду, что использовал , чтобы иметь DST в прошлом, последний в 1968 году.
  • Используйте Etc/GMT+7, если вам нужно фиксированное смещение UTC-7, а никогда не имело летнего времени.Помните, что знак смещения намеренно инвертирован (Etc/GMT+7 = UTC-7).

    • Если вы используете эту зону для чего-либо, кроме времени для кораблей в море, то вам, вероятно, следуетпереоценить это решение.Другими словами, если ваши данные относятся к местному часовому поясу, в котором использует использование DST, то вам не следует выбирать зону, которая ее игнорирует.
  • Вы можете использовать America/Boise, но вы должны использовать его только для районов южного Айдахо и восточного Орегона, которые начали DST четыре недели спустя в 1974 году (1974-02-03 вместо 1974-01-06), как описано в комментарииИсточники базы данных TZ :

    # Southern Idaho (Ada, Adams, Bannock, Bear Lake, Bingham, Blaine,
    # Boise, Bonneville, Butte, Camas, Canyon, Caribou, Cassia, Clark,
    # Custer, Elmore, Franklin, Fremont, Gem, Gooding, Jefferson, Jerome,
    # Lemhi, Lincoln, Madison, Minidoka, Oneida, Owyhee, Payette, Power,
    # Teton, Twin Falls, Valley, Washington counties, and the southern
    # quarter of Idaho county) and eastern Oregon (most of Malheur County)
    # switched four weeks late in 1974.
    
    • Если вы не работаете с метками времени 1974 года, вы можете игнорировать эту зону и просто использовать America/Denver.
  • Вы можете использовать US/Mountain, но понимаете, что он связан как псевдоним America/Denver и считается устаревшим.Он существует для обратной совместимости.

    • Обычно рекомендуется использовать канонические идентификаторы формы Area/Locality вместо этих более старых представлений.См. Список часовых поясов базы данных TZ в Википедии.
1 голос
/ 17 марта 2019

Это интерпретирует 1513393355 как метку времени в UTC, а затем преобразует метку времени в America/Boise часовой пояс:

In [57]: pd.Timestamp(1513393355, unit='s', tz='UTC').tz_convert('America/Boise')
Out[57]: Timestamp('2017-12-15 20:02:35-0700', tz='America/Boise')

Панды зависят от pytz для расчета часового пояса.pytz зависит от базы данных Olson.База данных Olson содержит историю смещений utc для каждого часового пояса.Так что вам не нужно беспокоиться о том, действует ли переход на летнее время в определенный день.tz_convert позаботится об этом за вас.

Вы можете просмотреть все варианты, используя pytz.timezones.

Существует часовой пояс US/Mountain, но это устарело .См. ответ Мэтта Джонсона для получения более достоверной информации о соответствующих опциях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...