Je crée un système basé sur le Web qui sera utilisé dans des pays du monde entier. Un type de données qui doit être stocké est les dates et les heures.
Quels sont les avantages et les inconvénients de l'utilisation des classes de date et d'heure Java par rapport aux bibliothèques tierces telles que Joda time ? Je suppose que ces bibliothèques tierces existent pour une bonne raison, mais je ne les ai jamais vraiment comparées moi-même.
Réponses:
EDIT: Maintenant que Java 8 est sorti, si vous pouvez l'utiliser, faites-le!
java.time
est encore plus propre que Joda Time, à mon avis. Cependant, si vous êtes bloqué avant Java-8, lisez la suite ...Max a demandé les avantages et les inconvénients de l'utilisation de Joda ...
Avantages:
java.time
de Java 8, car ils sont au moins un peu similairesLes inconvénients:
DateTimeZoneBuilder
efficacement dans le passé. C'est cependant un cas d'utilisation très rare.Pour répondre à l'idée d'oxbow_lakes de créer efficacement votre propre petite API, voici mon point de vue sur les raisons pour lesquelles c'est une mauvaise idée:
la source
java.time.*
pour Java 6 et 7: threeten.org/threetenbpEh bien, à moins que vous n'ayez l'intention d'attendre Java 8, en espérant qu'ils implémenteront une meilleure API pour manipuler la date et l'heure, oui, s'il vous plaît, utilisez Joda-Time . C'est gagner du temps et éviter de nombreux maux de tête.
la source
La réponse est: ça dépend
JODA (et JSR-310) est une bibliothèque de date / heure entièrement fonctionnelle, comprenant une prise en charge pour une utilisation avec plusieurs systèmes de calendrier.
Personnellement, j'ai trouvé que JODA était un pas trop loin en termes de complexité pour ce dont j'ai besoin. Les 2 erreurs principales (IMHO) dans le java standard
Date
et lesCalendar
classes sont:Bien que ceux-ci soient traités par JODA, vous trouverez qu'il est assez facile de lancer vos propres classes pour
YearMonthDay
etInstant
, qui utilisent toutes les deux les classes Java sous le capot pour des calculs "calendaires" réels. Ensuite, vous n'avez pas à vous familiariser avec une API de> 100 classes, un mécanisme de formatage / d'analyse différent, etc.Bien sûr, si vous avez besoin d'une représentation complète de différentes chronologies (par exemple l'hébreu) ou si vous souhaitez être en mesure de définir votre propre système de calendrier imaginaire (par exemple pour un jeu que vous écrivez), alors peut-être que JODA ou JRS-310 est fait pour vous. Sinon, je dirais que rouler le vôtre est peut-être la voie à suivre.
Le responsable de la spécification JSR-310 est Stephen Colebourne qui a écrit JODA à la 1ère place, remplaçant donc logiquement JODA.
la source
Tout dépend de ce que vous faites avec les dates. Si vous les persistez simplement, les dates intégrées à Java feront probablement tout ce que vous voudrez. Cependant, si vous effectuez une manipulation étendue de la date et de l'heure, vous êtes probablement mieux avec Joda.
la source
Vous devez utiliser une bibliothèque Joda-Time, car:
représentation de la date.
Exception in thread "main" org.joda.time.IllegalFieldValueException: Cannot parse "2014-02-31": Value 31 for dayOfMonth must be in the range [1,28].
Vous pouvez aimer cette page pour plus de détails: http://swcodes.blogspot.com/
la source