Je dois être en mesure de stocker une date (année/mois/jour) sans composante temporelle. C'est un concept abstrait d'une date, comme un anniversaire - je dois représenter une date dans l'année et pas un instant particulier dans le temps. J'utilise Java pour analyser la date à partir de certains textes d'entrée, et j'ai besoin de stocker dans une base de données MySQL. Quel que soit le fuseau horaire de la base de données, de l'application ou de tout client, ils doivent tous voir la même année/mois/jour.Dates sans composant de fuseau horaire ou de fuseau horaire dans Java/MySQL
Mon application s'exécutera sur une machine avec un fuseau horaire différent du serveur de base de données, et je n'en ai aucun contrôle. Est-ce que quelqu'un a une solution élégante pour m'assurer que je stocke la date correctement?
Je peux penser à ces solutions, dont aucun ne semble très agréable:
- Interrogation ma connexion MySQL pour son fuseau horaire et analyser la date d'entrée dans ce fuseau horaire
- processus la date tout à fait comme une chaîne aaaa -MM-dd
Oui, dans votre code Java, créez votre propre type de dates, ou utilisez simplement une chaîne. Un objet java.util.Date est un instant spécifique dans le temps et ne modélise pas correctement votre cas d'utilisation. – erickson
J'ai un cas d'utilisation similaire: une date arbitraire indépendante de l'année pour corréler mes données aux données saisonnières. J'ai stocké le mois et le jour comme entiers plutôt que d'utiliser une chaîne, et je ne stocke aucune représentation de l'année. – AjahnCharles