Dois-je utiliser java.util.Date ou de passer à java.temps.LocalDate

Edit: bon, apparemment, c'était aussi l'opinion de la base, donc je vais essayer de reformuler plus précisément -

Y sont clairement mises en garde ou des inconvénients de l'utilisation de LocalDate, LocalTime etc. dans un code Java qui ne nécessite pas de rétro-compatibilité, et si oui - quels sont-ils?

Je suis à la recherche pour des choses comme "Actuel EE bibliothèques de X et Y ne fonctionnent pas correctement avec LocalDate" ou "très utile, le modèle est cassé avec LocalTime" et cetera.


(ici est la question de départ pour référence)

Avec Java 8, un nouveau moment de l'API est introduite, à savoir la java.temps.LocalDate etc., mais java.util.La Date n'est pas marqué comme obsolète.

Je suis en train d'écrire un nouveau projet, qui n'a pas besoin d'être rétro-compatible. Dois-je utiliser uniquement LocalDate, LocalDateTime etc.? Existe-il des inconvénients à l'utilisation de cette nouvelle API, par opposition à la bonne vieille java.util.Date?

En particulier - je vais travailler principalement avec JDBC. De ce que j'ai vu JDBC poignées de java.util.Date de bien. Il est aussi bien adapté pour LocalDate?

La recherche a abouti à beaucoup de sites expliquant comment convertir d'un format à l'autre, mais pas de réponse définitive à de nouveaux codes de l'ancienne API.

Grâce.

  • good old java.util.Date - il est vieux, mais pas bon. le nouveau code doit utiliser la nouvelle API.
  • Il y a une raison, une toute nouvelle date de l'API a été créé. Si vous avez un nouveau projet, rendez-vous avec le Java 8 introduit de l'API.
  • S'il vous plaît, utiliser la nouvelle API. 😛
  • Je vous remercie. Est-il une raison particulière de java.util.La Date n'est pas marquée comme @Deprecated dans une version plus récente de Java si c'est pour être remplacé par java.les classes de temps?
  • Java est réticent à l'idée de l'utilisation de l' @Deprecated annotation pour les choses qui sont mauvais, mais il ne va pas être supprimé.
  • Oracle propre documentation en donne trois raisons principales pour rendre caduque une API: "C'est de l'insécurité, buggy, ou très inefficace; Il s'en va dans une version future; Il encourage les mauvaises pratiques de codage." Si ces exigences s'appliquent à java.util.La Date peut être une question d'opinion.
  • Posez-vous cette question, la nouvelle api de vous fournir toutes les fonctionnalités dont vous avez besoin? Je ne suis pas sûr si JDBC a été mise à jour pour gérer la nouvelle api et repose toujours sur l'île de java.sql.Date. La conversion à partir de la Date de LocalDateTime os pas difficile non plus, de sorte que vous pouvez être amené à fournir certaines combler de toute façon...c'est ce que vous avez besoin de peser, vaut-il le temps et les efforts nécessaires pour convertir à partir de la Date de LocalDateTime si tout ce que vous allez faire est, par exemple, le format de la valeur de sortie? Si vous êtes en train de faire des calculs de date, alors oui, sans doute, optez pour la nouvelle API
  • Ok, donc apparemment MySQL connector J ne prend pas en charge Java 8 (allez comprendre!), il est donc impossible d'utiliser LocalDate / LocalTime etc. avec MySQL. Comme mon projet utilise MySQL - il semble que je vais coller avec de la mauvaise vieille Date.
  • Aucun inconvénients à l'utilisation de java.l'API du temps, car il est pris en charge par le pilote JDBC MySQL maintenant..?
  • En un mot: de Sun Microsystems, Oracle, et la PLAN communauté tous les donna sur le terrible héritage de la date-heure de cours avec l'adoption de la JSR 310. Et vous devriez en faire autant. Maintenant, des années plus tard, de nombreuses bibliothèques ont été mis à jour à l'appui de java.les classes de temps. Si certains de la bibliothèque de manque de soutien, remplir un rapport de bogue.

InformationsquelleAutor Itai | 2015-02-25