Ich habe einen Java-Client, der (über eine CSV und 'LOAD DATA INFILE') Zeitstempel (Typ TIMESTAMP) im UTC-Format in einer MySQL DB einfügt. Die Zeitzone meines Servers ist "America/New_York" und ich muss die Sommerzeit-Informationen speichern. Am 5. November um 2:00 Uhr ändert sich die Zeit von EDT zu EST und die Uhren werden um eine Stunde auf 1:00 Uhr zurückgestellt. So passiert zum Beispiel am 5. November um 1:30 Uhr zweimal; einmal in EDT und einmal in EST.Einfügen UTC Zeitstempel in MySQL - Sommerzeitzone
Wie kann ich den Server zwischen den beiden unterscheiden? Zum Beispiel, wenn ich EDT '2017-11-05 01:30:00' einfügen möchte, gibt es eine Möglichkeit, MySQL zu sagen, den Unterschied zwischen '2017-11-05 01:30:00' EDT (vor der Zeitänderung) und '2017-11-05 01:30:00' EST (nach der Zeitänderung), wenn ich Werte einfüge? Meine Java-Anwendung enthält die Zeitzoneninformationen beider Zeitstempel, falls dies wichtig ist.
Ich möchte die globale Zeitzone des Servers als 'America/New_York' behalten, da Benutzer auf diese Daten zugreifen und sie in ihrer lokalen Zeit anzeigen möchten.
Die Lösung, an die ich gedacht habe, ist, die Zeitzone der Verbindung vom Java-Client auf UTC zu setzen, die Werte in UTC einzugeben und dann die Zeitzone der Verbindung zurückzusetzen, aber ich wollte wissen, ob es einen besseren, 'Standard' gibt Lösung.
Wenn der Wert in UTC ist, gibt es keine DST Mehrdeutigkeit. '2017-11-05T01: 30 EDT' ist das gleiche wie' 2017-11-05T05: 30 UTC' und '2017-11-05T01: 30: 00 EST' ist' 2017-11-05T06: 30 UTC'. –
Ich weiß. Meine Frage ist, ich habe 2 Zeitstempel in Java. Einer ist "2017-11-05 01:30:00" EDT und der andere ist "2017-11-05 01:30:00" EST. Wie kann ich beides in das MySQL-Feld vom Typ TIMESTAMP einfügen, welches UTC ist? Muss ich sie zuerst in Java in UTC konvertieren und dann einfügen, oder gibt es einen besseren Weg? –
Wenn du * timestamp * sagst, meinst du einen 'java.sql.Timestamp' oder einen anderen Typ? –