Мне никогда не приходилось переводить время в UTC и обратно. Недавно был запрос, чтобы мое приложение знало часовой пояс, и я бегал по кругу. Много информации о преобразовании местного времени в UTC, которую я нашел довольно элементарной (возможно, я тоже делаю это неправильно), но я не могу найти никакой информации о том, как легко преобразовать время UTC в часовой пояс конечных пользователей.
Вкратце, и приложение для Android отправляет мне (приложение appengine) данные, и в этих данных есть временная метка. Чтобы сохранить эту метку времени в время UTC, я использую:
datetime.utcfromtimestamp(timestamp)
Кажется, это работает. Когда мое приложение хранит данные, они хранятся на 5 часов вперед (я EST -5)
Данные хранятся в BigTable appengine, и при извлечении они отображаются в виде строки, например:
"2011-01-21 02:37:21"
Как преобразовать эту строку в DateTime в правильном часовом поясе пользователя?
Кроме того, каково рекомендуемое хранилище для информации о часовом поясе пользователей? (Как вы обычно храните tz-информацию, например: «-5: 00» или «EST» и т. Д.?) Я уверен, что ответ на мой первый вопрос может содержать параметр, отвечающий за второй.