Hi alle,
Ich hab ein Verständnisproblem, was die Java Datentypen Date, TimeZone und SimpleDateFormat angeht.
Vielleicht kann mir hier jemand auf die Sprünge helfen:
Die Javadoc für Date gibt an, ein Date würde die Zeit immer in UTC repräsentieren, um in eine andere Zeitzone zu konvertieren kann ich einfach ein SimpleDateFormat nehmen, die Ziel-Zeitzone setzen und dann mit format() ausgeben.
Das funktioniert auch prima, nur wie realisiere ich das hier:
Ich hab in meiner Datenbank Timestamps in UTC stehen, diese lese ich über Hibernate aus und erhalte java.util.Date Objekte.
Ich möchte nun diese Daten in verschiedenen Zeitzonen ausgeben.
Sollte ja einfach gehen: Ein SimpleDateFormat mit der Ziel-Zeitzone (mal mit CET getestet, also UTC+1) erstellen und dann formatieren.
Tatsache ist aber, dass ich hier nicht einen Zeitstempel mit +1h zurückbekomme, sondern den ursprünglichen. Teste ich mit PST (UTC-8), erhalte ich einen Zeitstempel der 9h zurückliegt.
Ganz offensichtlich interpretiert SimpleDateFormat, das übergebene Datum als CET und nicht als UTC, also ist im Date doch irgendwie eine Zeitzone hinterlegt?
Kann irgendjemand Licht in die Sache bringen? Ich möchte, dass meine Zeitstempel als UTC interpretiert werden und davon ausgehend in andere Zeitzonen konvertiert werden...
lg,
--qu
Ich hab ein Verständnisproblem, was die Java Datentypen Date, TimeZone und SimpleDateFormat angeht.
Vielleicht kann mir hier jemand auf die Sprünge helfen:
Die Javadoc für Date gibt an, ein Date würde die Zeit immer in UTC repräsentieren, um in eine andere Zeitzone zu konvertieren kann ich einfach ein SimpleDateFormat nehmen, die Ziel-Zeitzone setzen und dann mit format() ausgeben.
Das funktioniert auch prima, nur wie realisiere ich das hier:
Ich hab in meiner Datenbank Timestamps in UTC stehen, diese lese ich über Hibernate aus und erhalte java.util.Date Objekte.
Ich möchte nun diese Daten in verschiedenen Zeitzonen ausgeben.
Sollte ja einfach gehen: Ein SimpleDateFormat mit der Ziel-Zeitzone (mal mit CET getestet, also UTC+1) erstellen und dann formatieren.
Tatsache ist aber, dass ich hier nicht einen Zeitstempel mit +1h zurückbekomme, sondern den ursprünglichen. Teste ich mit PST (UTC-8), erhalte ich einen Zeitstempel der 9h zurückliegt.
Ganz offensichtlich interpretiert SimpleDateFormat, das übergebene Datum als CET und nicht als UTC, also ist im Date doch irgendwie eine Zeitzone hinterlegt?
Kann irgendjemand Licht in die Sache bringen? Ich möchte, dass meine Zeitstempel als UTC interpretiert werden und davon ausgehend in andere Zeitzonen konvertiert werden...
lg,
--qu