ich mit folgenden URL meines rest
api nenne localhost:8080/api/2016-05-30T10:30:00-05:00/3
Datetime-Konvertierung in java.sql.Timestamp ist das Hinzufügen von 1 Stunde
Die api date
als String
empfängt und mich dann wie dateTime = DateTime.parse(date);
in jodatime Datetime-Objekt konvertieren ... Debuggen Dieser Code zeigt, dass sich der erwartete Wert ergibt.
Allerdings, wenn ich dieses Datum java.sql.timestamp
wie Timestamp ts = new Timestamp(dateTime.getMillis());
bin Umwandlung ... die resultierende Zeit ist 2016-05-30 11:30:00.0
... warum es ist das Hinzufügen +1 hour
der Zeit und was ist der richtige Weg zu konvertieren?
SOME HINTERGRUND
Ich habe die Zeit als Zeitstempel in SQL-Tabelle gespeichert. mit Zeitzone (zum Beispiel als String +4: 00 oder -5: 00) in einer separaten Spalte.
Ich würde eine ISO8601
Zeit in meinem URL-Pfadparameter erhalten und basierend darauf muss ich den Datensatz von db abrufen. Dafür werde ich zwei Vergleiche verwenden. 1 entspricht der Uhrzeit und 2 entspricht der Zeitzone.
Sie können Informationen zur Zeitzone hinzufügen. Es kann oft ... interessante Nebenwirkungen haben. – Matthieu
Welche Informationen soll ich hinzufügen? Ich mache keine explizite pro sagen ... mein System ist auf EDT Time Zone obwohl –
Ich bin nicht vertraut mit jodatime aber 'java.sql.Timestamp (lang)' erwartet das Argument in GMT Zeitzone und ich don Es wird keine Zeitzone angezeigt, die im ['BaseDateTime.getMillis()' javadoc] angegeben ist (http://joda-time.sourceforge.net/apidocs/org/joda/time/base/BaseDateTime.html#getMillis%28%29), obwohl es scheint, ISO8601 zu verwenden, welches Z UTC bedeutet, das Äquivalent zu GMT ist ... – Matthieu