Servus Forum,
ich habe ein Problem. Ich empfange über einen WCF Service einen Utc-Zeitstempel (JSON Format) bzw. die Millisekunden des Zeitstempels.
Aus diesen Millisekunden muss ich zwingend wieder ein Date-Objekt generieren - natürlich auch in Utc.
Wenn ich über das SimpleDateFormat die Zeitzone setze, und mir den String zurückgeben lasse, erhalte ich das korrekte Ergebnis: den 31.12.1999 23:00:00.
Parse ich diesen String jetzt in ein Date-Objekt, wird wieder die lokale Zeitzone berücksichtigt. Deshalb bin ich wieder eine Stunde "in der Zukunft" bzw.
erhalte ich als Ergebnis den 01.01.2000 00:00:00
Ich könnte folgendes "tricksen":
aber ob das eine saubere Lösung ist....??
Habt Ihr noch eine Idee / Lösung?
thxx....Grüße
ich habe ein Problem. Ich empfange über einen WCF Service einen Utc-Zeitstempel (JSON Format) bzw. die Millisekunden des Zeitstempels.
Aus diesen Millisekunden muss ich zwingend wieder ein Date-Objekt generieren - natürlich auch in Utc.
Wenn ich über das SimpleDateFormat die Zeitzone setze, und mir den String zurückgeben lasse, erhalte ich das korrekte Ergebnis: den 31.12.1999 23:00:00.
Parse ich diesen String jetzt in ein Date-Objekt, wird wieder die lokale Zeitzone berücksichtigt. Deshalb bin ich wieder eine Stunde "in der Zukunft" bzw.
erhalte ich als Ergebnis den 01.01.2000 00:00:00
Java:
long milli = Long.parseLong("946681200000");
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
String strDate = formatter.format(new Date(milli)); //31-12-1999 23:00:00
try {
Date date = formatter.parse(strDate); //Sat Jan 01 00:00:00 MEZ 2000
}
catch (ParseException e1) {
e1.printStackTrace();
}
Ich könnte folgendes "tricksen":
Java:
long milli = Long.parseLong("946681200000");
int offset = TimeZone.getDefault().getRawOffset();
Date dateoffset = new Date(milli - offset);
aber ob das eine saubere Lösung ist....??
Habt Ihr noch eine Idee / Lösung?
thxx....Grüße