Python – настройка даты и времени в определенном часовом поясе (без конверсий по UTC)

Чтобы быть ясным, это python 2.6, я использую pytz.

Это приложение, которое касается только часовых поясов США, мне нужно укрепить дату (сегодня) и получить временную отметку unix (время в эпоху) в течение 8 вечера и 11 вечера только в PST.

Это сводит меня с ума.

> pacific = pytz.timezone("US/Pacific") > datetime(2011,2,11,20,0,0,0,pacific) datetime.datetime(2011, 2, 11, 20, 0, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:0 STD>) > datetime(2011,2,11,20,0,0,0,pacific).strftime("%s") '1297454400' zsh> date -d '@1297454400' Fri Feb 11 12:00:00 PST 2011 

Таким образом, хотя я настраиваю часовой пояс и создаю datetime с этим часовым поясом, он все еще создает его как UTC, а затем преобразует его. Это больше проблема, поскольку UTC будет на следующий день, когда я попытаюсь выполнить вычисления.

Есть ли простой (или, по крайней мере, чувствительный) способ генерации временной метки для 8 вечера PST сегодня?

(чтобы быть ясным, я понимаю значение использования UTC в большинстве ситуаций, таких как временные метки базы данных или для общего хранилища. Это не одна из этих ситуаций, мне особенно нужна отметка времени для вечера в PST, а UTC не должно войдите в него.)

  • pytz.astimezone не учитывает летнее время?
  • Используйте Python, чтобы узнать, существует ли часовой пояс в летнее время
  • Как добавить часовой пояс в наивный экземпляр datetime в python
  • Как хранить наивное datetime в Django 1.4
  • pytz: вернуть Olson Название часового пояса только от GMT GMT
  • pytz: Почему нормализация необходима при переходе между часовыми поясами?
  • Из часового пояса и времени UTC получите разницу в секундах по местному времени в этот момент времени
  • Модуль pytz уже импортирован
  • 2 Solutions collect form web for “Python – настройка даты и времени в определенном часовом поясе (без конверсий по UTC)”

    Создайте объект utc для часовой пояс UTC, затем попробуйте следующее:

     #XXX: WRONG (for any timezone with a non-fixed utc offset), DON'T DO IT datetime(2011,2,11,20,0,0,0,pacific).astimezone(utc).strftime("%s") 

    Изменить: Как указано в комментариях, помещение часового пояса в конструктор datetime не всегда устойчиво. Предпочтительным методом, использующим документацию pytz , будет:

     #XXX: WRONG (unless your local timezone is UTC), DON'T DO IT pacific.localize(datetime(2011,2,11,20,0,0,0)).astimezone(utc).strftime("%s") 

    Есть как минимум два вопроса:

    1. вы не должны передавать часовой пояс с нефиксированным UTC-смещением, таким как "US/Pacific" как параметр tzinfo напрямую. Вы должны использовать pytz.timezone("US/Pacific").localize() Вместо этого метод pytz.timezone("US/Pacific").localize()
    2. .strftime('%s') не переносится, он игнорирует tzinfo и всегда использует локальный часовой пояс. Вместо этого используйте datetime.timestamp() или его аналоги в более старых версиях Python .

    Чтобы определить дату и время, относящиеся к часовому поясу, в данном часовом поясе:

     #!/usr/bin/env python from datetime import datetime import pytz # $ pip install pytz tz = pytz.timezone("US/Pacific") aware = tz.localize(datetime(2011, 2, 11, 20), is_dst=None) 

    Чтобы получить временную метку POSIX:

     timestamp = (aware - datetime(1970, 1, 1, tzinfo=pytz.utc)).total_seconds() 

    (В Python 2.6 см. totimestamp() о том, как эмулировать .total_seconds() ).

    Interesting Posts

    Python 3 дросселирует на CP-1252 / ANSI

    Поиск количества отдельных элементов в DataFrame в каждом столбце

    Сбой ошибки cythonize

    PicklingError при использовании многопроцессорности

    Как визуализировать 95% -ный доверительный интервал в matplotlib?

    Прочитать файл как список кортежей

    выдавать в кодировке нечисловой функции числовое значение в Spark и Ipython

    Функция таймаута с использованием потоковой передачи в python не работает

    Как преобразовать строку json в словарь и сохранить порядок в ключах?

    Как получить ссылку на все классы, реализующие объект дескриптора в python

    Сортировка Python: сортировка словаря по значению (DESC), затем по ключу (ASC)

    Скопировать последние три строки текстового файла в python?

    Как я могу изменить конкретную метку строки в кадре данных Pandas?

    ttk treeview: альтернативные цвета строк

    Невозможно рассортировать <тип 'instancemethod'> при использовании многопроцессорности Pool.map ()

    Python - лучший язык программирования в мире.