Java - Magasin GMT
- Mon serveur a GMT+7, donc, si je passe à un autre serveur a un autre fuseau horaire GMT, tous les date stockée dans la bd sera incorrect?
- Oui T1 est correct, et je stocke la date GMT+0 fuseau horaire et de l'afficher dans la coutume GMT fuseau horaire choisi par chaque membre
- Comment je obtenir la date avec l'heure GMT+0 en java
Vous devez vous connecter pour publier un commentaire.
1) extraits de la documentation javadoc, Java milliseconde horodatages sont
Par conséquent, que l'horodatage est UTC/GMT, si vous le stocker dans la base de données de cette date est correcte, peu importe le fuseau horaire du serveur.
2) mise en forme de l'horodatage pour l'affichage en fonction du fuseau horaire serait la bonne approche.
3) la Création d'un nouveau java.util.Date d'instance et d'appel getTime() vous permet d'obtenir le timestamp GMT+0 en Java.
À ajouter pour marquer le point, une fois que vous avez un java.util.Date, vous pouvez "convertir" à n'importe quel Fuseau horaire (choisis par l'Utilisateur). Voici un exemple de code en Groovy (elle fonctionne en Java avec une légère mods):
Par défaut lorsque vous obtenez une date en java de ses dans votre fuseau horaire, vous pouvez utiliser le Fuseau horaire classe pour obtenir le fuseau horaire de l'heure de votre système est en cours d'exécution. La plupart des bases de données prend en charge que les dates peuvent être stockés AVEC le fuseau horaire, ce qui serait sans doute la bonne façon de le faire, mais exactement ce que le format est peut-être la personne à charge sur la base de données que vous utilisez.
Je suggère que vous utilisez uniquement la Date en tant que "titulaire" et vous propose d'utiliser le Calendrier des instances de la place. Pour obtenir un Calendrier dans le fuseau horaire GMT il suffit d'utiliser cette:
Un Calendrier de fournir un grand avantage lorsque vous travaillez avec des dates et des heures. Par exemple, l'ajout d'une heure à cette question est simple:
Enfin, lorsque vous avez besoin d'une Date, il suffit d'utiliser ceci:
Pour T3, pensez à utiliser ZonedDateTime classe.