Je devrais utiliser java.util.Date ou passer à java.temps.LocalDate

Edit: Eh bien, apparemment c'était trop basé sur l'opinion, alors laissez - moi essayer de le reformuler plus précisément -

y a-t-il des mises en garde ou des inconvénients clairs à utiliser LocalDate, LocalTime, etc. dans un code Java qui n'a pas besoin de compatibilité ascendante, et si oui, que sont - ils?

je cherche des choses comme "les bibliothèques EE actuelles X et Y ne fonctionnent pas correctement avec LocalDate" ou "Ce modèle très utile est cassé avec LocalTime" et cetera.


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

avec Java 8, une nouvelle API time est introduite, à savoir java.temps.LocalDate etc. mais java.util.La Date n'est pas marqué comme obsolète.

j'écris un nouveau projet, qui n'a pas besoin d'être rétro-compatible. Devrais-je utiliser uniquement LocalDate, LocalDateTime, etc.? Y a-t-il des inconvénients à utiliser cette nouvelle API par rapport au bon vieux java?util.Date?

en particulier-I vais travailler principalement avec JDBC. D'après ce que j'ai vu, JDBC gère java.util.Date de bien. Convient-il aussi bien pour LocalDate?

la recherche a permis d'obtenir de nombreux sites indiquant comment passer d'un format à l'autre, mais aucune réponse définitive quant à l'utilisation du nouveau code par l'ancienne API.

Merci.

25
demandé sur Itai 2015-02-26 00:37:23
la source

1 ответов

Malgré le nom, java.util.La Date peut être utilisée pour stocker la date et l'heure (elle stocke UTC millisecondes offset since epoch)

je n'hésiterais pas à utiliser la nouvelle API raison de plus de fonctionnalités:

  • format/parsing plus facile. L'API a ses propres méthodes de format / parse
  • L'API inclut l'opération d'addition / soustraction (minusMinutes, plusDays, etc)

aucune de ces réponses n'est disponible sur java.util.Date

ancienne date can aussi être converti en LocalDateTime comme ceci:

Date oldDate = ...
LocalDateTime newDateTime = 
  LocalDateTime.from(Instant.ofEpochMilli(oldDate.getTime()));
23
répondu gerrytan 2015-02-26 14:54:51
la source

Autres questions sur