2016-06-15 14 views
0

Ich habe ein DATETIME-Feld in meiner Tabelle, das anders als das, was ich zurückgebe, angezeigt wird.MySQL DateTime Unerwartetes Verhalten

Um zu verstehen, hier sind die genauen Objektfelder Ich bin in meinem API Rückkehr:

enter image description here

Allerdings, wenn ich PostMan bin mit und den Resultaten, wird die Zeit von geändert wird was ich dazu bin Rückkehr:

enter image description here

ich verstehe nicht, was los ist. Ich versuche, das DATETIME in der Datenbank als UTC-Zeit zu speichern und es dann an den Client zu senden, wo der Client es zu lokaler Zeit konvertiert.

Hier ist, was die DATETIME- Daten wie in der Datenbank suchen: enter image description here

+0

Ihre Daten erscheinen in der UTC-Zeitzone. Das würde den Unterschied von 4 Stunden erklären. Und es scheint, dass Sie ein Problem im Code zwischen Ihrer Datenbank und dem Ergebnis haben. Eines der Daten könnte das aktuelle Datum sein. – Eytibi

+0

PostMan kann nicht direkt mit MySQL kommunizieren, da MySQL kein HTTP/HTTPS-Protokoll spricht. Aber MySQL versteht Abfragen. Welche Anfragen senden Sie an MySQL? –

Antwort

0

Sie sind nicht die Daten in der UTC-Zeit zu speichern. "GMT-0400 (EDT)" bedeutet, dass sie in östlicher Zeit gelagert werden. Die Z in den anderen Ergebnissen bedeutet UTC (oder Zulu) Zeit, nach dieser Spezifikation: http://www.ietf.org/rfc/rfc3339.txt

Ich erwarte, dass Ihre MySQL-Installation die Standard-Zeitzone auf die Zeitzone festgelegt hat, dass Ihre Box ist in (https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html) so, wenn Sie hinzufügen Wenn Sie keine Zeitzone angeben, wird davon ausgegangen, dass sie sich in der Standardzeitzone befindet. Das wird dann in Ihrer Antwort in UTC umgerechnet und addiert vier Stunden zur Zeit.

Sie sollten beim Hinzufügen von Informationen zur Datenbank wahrscheinlich eine Zeitzone angeben und/oder die Standardzeitzone für Ihre Datenbank ändern. Je nach der API, die Sie für den Zugriff auf die Datenbank verwenden, kann auch eine andere Schicht hilfreich sein. Wenn relevante Informationen zur API vorhanden sind, können Sie diese Ihrer Frage hinzufügen.