Преобразовать строку даты и времени UTC в локальную дату и время

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

Вкратце, и приложение Android отправляет мне (приложение appengine) данные, и в этих данных есть временная метка. Чтобы сохранить эту метку времени в формате utc time, я использую:

datetime.utcfromtimestamp(timestamp)

Кажется, это работает. Когда мое приложение сохраняет данные, они хранятся на 5 часов вперед (я EST -5)

Данные хранятся в BigTable appengine, и при извлечении они выводятся в виде строки, например:

"2011-01-21 02:37:21"

Как мне преобразовать эту строку в DateTime в правильном часовом поясе пользователя?

Кроме того, каково рекомендуемое хранилище для информации о часовом поясе пользователя? (Как вы обычно храните tz-информацию, например: «-5: 00» или «EST» и т. Д.?) Я уверен, что ответ на мой первый вопрос может содержать параметр, отвечающий за второй.

193
задан martineau 9 March 2019 в 00:57
поделиться