Nunca he tenido que convertir el tiempo hacia y desde UTC. Recientemente tuve una solicitud para que mi aplicación tuviera en cuenta la zona horaria, y me he estado ejecutando en círculos. Mucha información sobre la conversión de la hora local a UTC, que encontré bastante elemental (tal vez estoy haciendo eso mal también), pero no puedo encontrar ninguna información sobre cómo convertir fácilmente la hora UTC a la zona horaria de los usuarios finales.
En pocas palabras, y la aplicación de Android me envía datos (aplicación appengine) y dentro de esos datos hay una marca de tiempo. Para almacenar esa marca de tiempo a la hora utc que estoy usando:
datetime.utcfromtimestamp(timestamp)
Eso parece estar funcionando. Cuando mi aplicación almacena los datos, se almacena con 5 horas de anticipación (estoy EST -5)
Los datos se almacenan en BigTable de appengine y, cuando se recuperan, salen como una cadena de este modo:
"2011-01-21 02:37:21"
¿Cómo convierto esta cadena a DateTime en la zona horaria correcta de los usuarios?
Además, ¿cuál es el almacenamiento recomendado para la información de zona horaria de un usuario? (¿Cómo almacena típicamente información tz, es decir: "-5: 00" o "EST", etc., etc.?) Estoy seguro de que la respuesta a mi primera pregunta puede contener un parámetro que responda a la segunda.