Pourquoi ne puis-je pas obtenir une durée en minutes ou en heures en java.de temps?

De la Durée classe dans la nouvelle JSR 310 date de l'API (java.en temps) disponibles dans Java 8 et, plus tard, la javadoc dit :

Cette classe de modèles d'une quantité ou une quantité de temps en termes de secondes et
nanosecondes. Il peut être consulté à l'aide d'autres en fonction de la duration des unités, telles
comme les minutes et les heures
.En outre, les JOURS de l'unité peut être utilisée et elle est considérée comme égale à 24 heures, ignorant ainsi les effets de l'heure d'été.

Alors, pourquoi le code suivant crash ?

Duration duration = Duration.ofSeconds(3000);
System.out.println(duration.get(ChronoUnit.MINUTES));

Cela soulève une UnsupportedTemporalTypeException :

java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Minutes
    at java.time.Duration.get(Duration.java:537)

Alors, quelle est la méthode recommandée pour extraire les minutes et les heures à partir d'une durée d'objet ? Avons-nous les faire le calcul nous-mêmes à partir du nombre de secondes ? Pourquoi était-il mis en œuvre de cette façon ?

  • stackoverflow.com/questions/20827047/... (le non-accepté de répondre)
  • Pour info, il y a un projet d'extension de java.temps, ThreeTen Extra. Mais je ne pense pas qu'il a actuellement rien pour vous aider.
  • Semble que JSR 310 java.le temps n'est pas tout ce que nous espérions. Elle n'est pas complète et supérieure de remplacement pour Joda-Time. Alors que java.le temps a ses points forts, afin de ne Joda-Time. Joda-Time propose trois classes de manipulation d'un laps de temps (Durée, Période, Intervalle), a une bonne prise en charge intégrée de la norme ISO 8601 représentation de chaîne des travées, et un bon support pour la définition de vos propres formateurs.
  • Ouais, j'étais encore à l'aide de l'ancienne Date de l'API, en attente pour le 310, mais maintenant je pense, vais-je aller avec Joda à la place. Mais les 310 API est encore beaucoup mieux que l'ancienne Date un!
  • Heureusement, on peut utiliser à la fois à java.temps et Joda-Time, l'application soit dans le cas où ses forces ont du mérite. Juste être prudent avec votre import déclarations qu'ils partagent quelques noms de classe (LocalDate etc.). Pour plus de clarté, je vous suggère de ne jamais mélanger java.temps et Joda-Time dans le même bloc de code. Comme pour ces vieux java.util.Date & .Calendar & SimpleDateFormat, certainement éviter.
InformationsquelleAutor Pierre Henry | 2014-06-30