2016-06-20 8 views
0

Ich habe time with time zone in meiner postgresql Datenbank. Mein Standort ist Indien, also wird es als 10.00.00+5.30 gespeichert. Ich erhalte das Ergebnis java Resultset wie folgt verwendet:Java getTime() bekommen Zeit von Zeit mit Zeitzone nicht richtig erhalten

Angenommen:

String time = rst.getTime(1).toString();

Erwartetes Ergebnis ist: 10:00 aber ich bin immer Ergebnis als 21.30. Bitte führe mich, was ich falsch mache?

+0

Wenn Sie toString verwenden, verlieren Sie die Zeitzoneninformationen. – assylias

+0

@ assylias zustimmen. Wie kann ich die richtige Zeit bekommen? – Santhucool

+2

Beachten Sie, dass Postgres den Zeitzonen-Offset, den Sie senden, nicht speichert. Es normalisiert es vor dem Speichern auf UTC. –

Antwort

2

Verwenden Sie DateFormat, um Zeitzone auf eine analysierte Zeichenfolge festzulegen.

SimpleDateFormat isoFormat = new SimpleDateFormat("HH:mm"); 
isoFormat.setTimeZone(TimeZone.getTimeZone("IST")); 
String time = isoFormat.format(rst.getTime(1)); 
+0

Ich habe gerade '10.00.00 + 5.30' und nicht' 2010-05-23T09: 01: 02'. – Santhucool

+0

lesen Sie den Fall sorgfältig, das ist nicht das, was ich brauchte – Santhucool

+0

@Santhucool Sie müssen ein DateFormat mit der richtigen Zeitzone wie in dieser Antwort beschrieben verwenden, dann: 'String time = isoFormat.format (rst.getTime (1)) ; ' – assylias