Daten für verschiedene Zeitzonen

Wenn Sie Daten mit calender-, java.util.Date- und timestamp-Attributen in ein ObjectGrid einfügen, müssen Sie sicherstellen, dass diese Datums-/Zeitattribute auf der Basis derselben Zeitzone erstellt werden, insbesondere wenn sie in mehreren Servern in verschiedenen Zeitzonen implementiert werden. Durch die Verwendung von Datums-/Zeitobjekten, die auf derselben Zeitzone basieren, können Sie sicherstellen, dass die Anwendung zeitzonensicher ist und Daten mit Hilfe von calendar-, java.util.Date- und timestamp-Prädikaten abgefragt werden können.

Ohne explizite Angabe einer Zeitzone beim Erstellen von Datums-Zeitobjekten verwendet Java die lokale Zeitzone, was zu inkonsistenten Datums-/Zeitwerten in Clients und Servern führen kann.

Stellen Sie sich beispielsweise eine verteilte Implementierung vor, in der sich client1 in der Zeitzone [GMT-0] und client2 in der Zeitzone [GMT-6] befindet und beide Clients ein java.util.Date-Objekt mit dem Wert '1999-12-31 06:00:00' erstellen möchten. client1 erstellt das java.util.Date-Objekt mit dem Wert '1999-12-31 06:00:00 [GMT-0]' und client2 das java.util.Date-Objekt mit dem Wert '1999-12-31 06:00:00 [GMT-6]'. Die beiden java.util.Date-Objekte sind nicht gleich, weil die Zeitzonen verschieden sind. Ein ähnliches Problem tritt auf, wenn Daten vorab in Partitionen geladen werden, die sich in Servern in unterschiedlichen Zeitzonen befinden, wenn die lokale Zeitzone zum Erstellen von Datums-Zeitobjekten verwendet wird.

Zur Vermeidung des beschriebenen Problems kann die Anwendung eine Zeitzone wie [GMT-0] als Basiszeitzone für die Erstellung von calendar-, java.util.Date- und timestamp-Objekten auswählen.