Lors de l'insertion de données associées à des attributs de calendrier, java.util.Date et d'horodatage dans un objet ObjectGrid, vous devez vous assurer que ces attributs de date et d'heure sont créés en fonction du même fuseau horaire, surtout en cas de déploiement sur des serveurs correspondant à des fuseaux horaires différents. En utilisant les mêmes objets de date et d'heure de fuseau horaire, l'application respecte les heures et les données peuvent être interrogées en fonction de prédicats de calendrier, java.util.Date et d'horodatage.
Si un fuseau horaire n'est pas explicitement indiqué lors de la création d'objets de date et d'heure, Java utilise le fuseau horaire local et peut entraîner des valeurs de date et heure incohérentes sur les clients et les serveurs.
Prenons l'exemple d'un déploiement réparti dans lequel client1 correspond au fuseau horaire [GMT-0] et client2 au fuseau horaire [GMT-6]. Ces derniers veulent créer un objet java.util.Date avec la valeur "1999-12-31 06:00:00". client1 crée l'objet java.util.Date avec la valeur "1999-12-31 06:00:00 [GMT-0]" et client2 l'objet java.util.Date avec la valeur "1999-12-31 06:00:00 [GMT-6]". Les deux objets java.util.Date ne correspondent pas car leurs fuseaux horaires sont divergents. Un problème similaire survient lors du pré-chargement de données dans des partitions résidant sur des serveurs correspondants à des fuseaux horaires différents, si le fuseau horaire local est utilisé pour créer les objets de date et heure.
Pour éviter ce problème, l'application peut sélectionner un fuseau horaire de base, tel que [GMT-0], pour la création des objets de calendrier, java.util.Date et d'horodatage.