Ich verwende Jersey 2.Jersey + JodaTime = Lese Datums- und Uhrzeit falsch
ich sende und speichern Sie das Datum korrekt in der Datenbank, und sogar die JSON mit dem richtigen Zeitpunkt millis senden:
//Debbuged using LoggingFilter
{"id":3,"start":1460304000000,"end":1460307600000}
wie Sie sehen können, starten ist: „Sun 10. April 2016 13.00.00“ und das Ende ist: „Sun 10. April 2016 14.00.00“, aber wenn ich debuggen den Client:
SaveablePersonalSchedule dto = response.readEntity(SaveablePersonalSchedule.class);
I Erhalten Sie diese Daten:
START: 2016-04-10T16:00:00.000Z
END: 2016-04-10T17:00:00.000Z
Bis 3 Stunden falsch. Dies geschieht mit allen anderen Zeit, die ich getestet habe: Das Datum ist korrekt, die Zeit ist 3 Stunden +.
Irgendwelche Ideen, wie Sie das beheben können? Ich weiß, ich kann 3 Stunden ab dem angegebenen Datum abziehen, aber ich glaube, das sollte der letzte Ausweg sein. Auch nur hässlich hahaha
Mehr Infos
Client-Erstellung:
client = ClientBuilder.newClient(new ClientConfig()
.register(new JerseyObjectMapperProvider())
.register(new Jackson1Feature())
.register(new MultiPartFeature()));
die ObjectMapper Erstellen wurde mit der Art, wie ich gefunden Trikot den richtigen Datetime-Wert machen SEND, da der Server es falsch zunächst empfängt . Danach sende ich die Daten korrekt und konnte sie auch auf mysql korrekt speichern.
private static ObjectMapper createDefaultMapper() {
final ObjectMapper result = new ObjectMapper();
result.configure(Feature.WRITE_DATES_AS_TIMESTAMPS, false);
return result;
}
wirkliche Frage
Wie Time-Zone auf Jersey setzen? Ich dachte, es wäre auf dem ObjectMapper, aber ich vermute falsch.
Das ist, was ich brauche, aber ich will Jersey es für mich zu tun. Weißt du wie? –
@MarcoNoronha Sie können 'jerseyDateTime.toDateTime (DateTimeZone.getDefault())' aufrufen. – assylias
Ich kann es nicht finden Assylias :(Können Sie mir helfen? Ich dachte, es wäre auf dem ObjectMapper, aber ich denke nicht. –