della classe Duration
nel nuovo JSR 310 Data API (java.time package) disponibili in Java 8 e versioni successive, il javadoc dice:Perché non riesco a ottenere una durata in minuti o ore in java.time?
Questa classe modelli una quantità o quantità di tempo in termini di secondi e nanosecondi. È possibile accedervi utilizzando altre unità basate sulla durata, ad esempio come minuti e ore. Inoltre, l'unità DAYS può essere utilizzata ed è considerata esattamente uguale a 24 ore, ignorando quindi gli effetti dell'ora legale.
Quindi, perché il seguente codice si blocca?
Duration duration = Duration.ofSeconds(3000);
System.out.println(duration.get(ChronoUnit.MINUTES));
Questo solleva una UnsupportedTemporalTypeException
:
java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Minutes
at java.time.Duration.get(Duration.java:537)
Allora, qual è il metodo consigliato per estrarre minuti e ore da un oggetto di durata? Dobbiamo calcolare noi stessi dal numero di secondi? Perché è stato implementato in questo modo?
http://stackoverflow.com/questions/20827047/formatting-a-duration-in-java-8-jsr310 (la risposta non accettata) –
FY Io, c'è un progetto per estendere java.time, [ThreeTen Extra] (http://www.threeten.org/threeten-extra/). Ma non penso che al momento abbia qualcosa per aiutarti. –
Sembra che JSR 310 java.time non sia tutto ciò che speravamo. Non è un sostituto completo e superiore per [Joda-Time] (http://www.joda.org/joda-time/). Mentre java.time ha i suoi punti di forza, così fa Joda-Time. Joda-Time offre tre classi per gestire un intervallo di tempo (Durata, Periodo, Intervallo), ha un buon supporto integrato per la rappresentazione della stringa ISO 8601 di span e un buon supporto per la definizione dei propri formattatori. –