Non ho mai dovuto convertire il tempo in e da UTC. Di recente ho ricevuto una richiesta per rendere la mia app in grado di riconoscere il fuso orario e mi sono messo in giro in cerchio. Molte informazioni sulla conversione dell'ora locale in UTC, che ho trovato abbastanza elementare (forse sto sbagliando anch'io), ma non riesco a trovare alcuna informazione su come convertire facilmente l'ora UTC nel fuso orario degli utenti finali.
In poche parole, e l'app Android mi invia i dati (app appine) e all'interno di tali dati c'è un timestamp. Per memorizzare il timestamp nel tempo utc che sto usando:
datetime.utcfromtimestamp(timestamp)
Sembra funzionare. Quando la mia app memorizza i dati, viene archiviata con 5 ore di anticipo (sono EST -5)
I dati vengono archiviati sulla BigTable di appengine e quando vengono recuperati vengono visualizzati come una stringa in questo modo:
"2011-01-21 02:37:21"
Come posso convertire questa stringa in un DateTime nel fuso orario corretto degli utenti?
Inoltre, qual è la memoria consigliata per le informazioni sul fuso orario di un utente? (Come in genere memorizzi informazioni tz, ad esempio: "-5: 00" o "EST", ecc.?) Sono sicuro che la risposta alla mia prima domanda potrebbe contenere un parametro e le risposte alla seconda.