verloren geht ein Tag für ein date
Auf der client-Seite, ich nutze dd/MM/yyyy Datumsformat. Das Feld verwenden twitter bootstrap-3-datetime-picker (https://eonasdan.github.io/bootstrap-datetimepicker/)
Ich über twitter bootstrap 3, datetime-picker 24/07/2015
in meiner json, die ich gesendet habe, sehe ich: Geburtstag: "24/07/2015"
In meinem dto, ich
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy")
private Date birthdate;
Wenn ich das Datum auf dem server, in meinem dto finden Sie unter: 23/07/2015 19:00 Uhr
Einen Tag verloren.
Jede Explikation?
- haben Sie überprüft Ihre lokale Uhrzeit auf Ihrem system ?
- client / server ist auf derselben Maschine: beide MESZ -4 Stunden (mtl Zeit)...
- Es ist definitiv ein Zeit-zone übersetzung-Problem. Die eine Seite ist die Behandlung der Zeit als UTC, und die andere ist die Konvertierung in die lokale Zeit. Wir hatten dieses Problem in einigen client - /server-integration mit 3rd-party-system. Die Totes Werbegeschenk ist die "19:00", wurde Hinzugefügt, um den anderen Zeit, es ist genau 5 Stunden Unterschied (eigentlich nicht einen ganzen Tag).
- browser-Seite bekomme ich für ein neues date: Fri Jul 24 2015 23:49:26 GMT-0400 (EDT). Auf dem server habe ich bekommen: FR Jul 23:49:26 MESZ 2015. Ich denke, östliche Sommerzeit (MESZ) = GMT-4 (USA + Kanada)
- Wenn Sie die Abfrage Ihrer service mit einem tool wie Briefträger, nicht der Zeitpunkt kommen, falsch? In meinem Fall war das problem in der restTemplate client, nicht im server.
- Hatte das gleiche Problem. Mit Postboten zu überprüfen, ob der client ist nicht der Schuldige. Scheint ein Problem mit der Zeitzone Jackson ist mit vs die Zeitzone des Systems. Ändern musste die jackson-config zu kompensieren Termine
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut JacksonFAQDateHandling Seite:
In Ihrem Fall sieht es so aus das Datum wird automatisch umgewandelt zu GMT/UTC. Versuchen Sie Ihre lokale Zeitzone explizit zu vermeiden UTC-Konvertierung [wie in der Frage genannten Wie kommen Sie auf diese Zeit ist von 9 Stunden??? (5 Stunden, 3 Stunden etc.) auf derselben Seite]:
Zweitens, ich glaube, Sie sind mit
Date.toString()
zu Datum drucken. Hinweis , dass javaDate
Klasse ist die Zeitzone unabhängig, aber seinetoString()
Methode verwendet das system ist Standard Zeitzone, bevor Sie drucken.Hier sieht es aus wie
24/07/2015 00:00 UTC
konvertiert wird23/07/2015 19:00 EST
durchtoString()
. Beide vertreten die gleichen moment Zeit, aber in unterschiedlichen Zeitzonen.AimZ Antwort ist, was hat mich zu diesem, aber ich fügte hinzu, diese drei Zeilen zu meiner Anwendung.Eigenschaften-Datei und erzielt das gleiche
Frühjahr.jackson.date-format=JJJJ-MM-TT
Frühjahr.jackson.Serialisierung.schreiben-Termine-als-Zeitstempel:false
Frühjahr.jackson.Zeit-zone:EST
Hatte das gleiche Problem. Mit Postboten zu überprüfen, ob der client ist nicht der Schuldige. Scheint ein Problem mit der Zeitzone Jackson ist mit vs die Zeitzone des Systems. Ändern musste die Jackson-config zu kompensieren Termine