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 doivent être stockées sont 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 heure Joda ? Je suppose que ces bibliothèques tierces existent pour une bonne raison, mais je ne les ai jamais vraiment comparés moi-même.
EDIT: Maintenant que Java 8 a été publié, 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
in Java 8, car ils sont au moins quelque peu similairesLes inconvénients:
DateTimeZoneBuilder
efficacement dans le passé. Il s'agit cependant d'un cas d'utilisation très rare.Pour répondre à l'idée d'oxbow_lakes de construire efficacement votre propre petite API, voici mon point de vue sur la raison pour laquelle c'est une mauvaise idée:
Eh bien, sauf si vous avez l'intention d'attendre Java 8, en espérant qu'ils implémenteront ne meilleure API pour manipuler la date et l'heure, oui, veuillez utiliser Joda-Time . C'est un gain de temps et évite de nombreux maux de tête.
La réponse est: cela dépend
JODA (et JSR-310) est une bibliothèque de date/heure entièrement fonctionnelle, comprenant la prise en charge pour une utilisation avec plusieurs systèmes de calendrier.
Personnellement, j'ai trouvé que JODA allait trop loin en termes de complexité pour ce dont j'avais besoin. Les 2 erreurs principales (IMHO) dans les classes standard Java Date
et Calendar
sont:
Bien que ceux-ci soient traités par JODA, vous trouverez assez facile de rouler vos propres classes pour YearMonthDay
et Instant
, qui utilisent toutes les deux les classes Java Java sous le capot pour les calculs "calendriers" réels. Ensuite, vous n'avez pas à vous familiariser avec une API de> 100 classes, un mécanisme de formatage/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 souhaitez pouvoir 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 pour vous. Sinon, je dirais que rouler le vôtre est peut-être la voie à suivre.
Le responsable des spécifications JSR-310 est Stephen Colebourne qui a écrit JODA à la 1ère place, donc logiquement remplacer JODA.
Vous devez utiliser une bibliothèque Joda-Time, car:
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/
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 voulez. Cependant, si vous faites une manipulation approfondie de la date et de l'heure, vous êtes probablement mieux avec Joda.