Natürlich ist der Titel das erwartete Ergebnis, aber ich bin mir nicht sicher, wie es zu beheben ist. Ich habe meine Produktionsserver MySql in MST ausgeführt. Ich teste meine Anwendung lokal in EST.MySql Anwendungen in verschiedenen Zeitzonen geben unterschiedliche Ergebnisse
Wir verwenden Joda Zeit. Hier ist, wo das Problem kommt:
DateTime nowTime = new DateTime();
DateTime endTime = myObject.getEndTime();
Duration duration = new Duration(nowTime, endTime);
if(duration.getStandardMinutes() < 15) {
//do something time critical
}
Natürlich, das funktioniert gut, wenn die Anwendung in MST ausgeführt wird, aber für meine lokale Anwendung EST läuft, ist es weg von der Zeitzone Unterschied.
Weiß jemand, wie man das löst? Angenommen, das Ändern der Standardzeitzone auf Ihrem MySql-Server ist keine Option, da wir Legacy-Anwendungen haben, die es teilen. Idealerweise könnten wir einfach die Zeitzone auf GMT einstellen, damit wir UTC-Zeit haben könnten.
Bearbeiten: Weiß jemand, ob es eine Möglichkeit gibt, den Wechsel von UTC in die aktuelle Zeitzone beim Abruf zu vermeiden (siehe fett unten in der Dokumentation)?
Die aktuelle Einstellung der Sitzungszeitzone wirkt sich auf Anzeige und Speicherung von Zeitwerten aus, die zonenabhängig sind. Dazu gehören die Werte , die von Funktionen wie NOW() oder CURTIME() angezeigt werden, und Werte, die in TIMESTAMP-Spalten gespeichert sind und aus diesen abgerufen werden ( ). Die Werte für die TIMESTAMP-Spalten werden für die Speicherung von der aktuellen Zeitzone in UTC und für den Abruf von UTC in die aktuelle Zeitzone konvertiert.
Oder ist die einzige Option, um diese wieder zu UTC programmatisch nach Retrieval-Format konvertieren?
Sie die Zeitzone pro Verbindung in MySQL einstellen. – Barmar
Oder Sie können 'convert_tz()' in MySQL verwenden. https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_convert-tz – Barmar
@Barmar Können Sie? Ich kann keine Dokumentation darüber finden, wie man das macht. Wenn ich kann, glaube ich, dass das hier die Lösung wäre. – Matt