Nigdy nie musiałem przeliczać czasu na i od UTC. Niedawno otrzymałem prośbę, aby moja aplikacja była świadoma strefy czasowej, a ja pracuję w kółko. Wiele informacji na temat konwersji czasu lokalnego na UTC, które uważam za dość elementarne (być może robię to również źle), ale nie mogę znaleźć żadnych informacji na temat łatwego konwertowania czasu UTC na strefę czasową użytkowników końcowych.
Krótko mówiąc, aplikacja na Androida wysyła mi (aplikację silnika) dane, w których obrębie znajduje się znacznik czasu. Aby zapisać ten znacznik czasu na czas utc, którego używam:
datetime.utcfromtimestamp(timestamp)
To wydaje się działać. Gdy moja aplikacja przechowuje dane, są one zapisywane z wyprzedzeniem 5 godzin (mam EST -5)
Dane są przechowywane na BigTable aplikacji, a po ich odzyskaniu są wyświetlane jako ciąg znaków:
"2011-01-21 02:37:21"
Jak przekonwertować ten ciąg na DateTime we właściwej strefie czasowej użytkowników?
Jakie jest zalecane miejsce do przechowywania informacji o strefie czasowej użytkowników? (Jak zazwyczaj przechowujesz informacje tz, tj .: „-5: 00” lub „EST” itp.?) Jestem pewien, że odpowiedź na moje pierwsze pytanie może zawierać parametr odpowiadający odpowiedziom na drugie.