Ce face Duration.ofMinutes
Metodele Duration.of… creează o durată dintr-un număr într-o unitate: ofMinutes(90), ofSeconds(45), ofHours(2), ofMillis(500), ofDays(1). Durata este normalizată: 90 de minute se afișează PT1H30M.
Există și ofSeconds(secunde, ajustareNano) pentru precizie la nanosecundă și Duration.of(5, ChronoUnit.MINUTES) pentru unitatea dată ca parametru. Duratele se folosesc des ca timeout: HttpClient, Thread.sleep(Duration), Future.get.
Parametri
| Parametru | Descriere |
|---|---|
minute |
Numărul de minute. Poate fi negativ. |
secunde |
Numărul de secunde. |
Ce returnează
Un Duration nou.
Exemple
Exemplul 1: Durate din diferite unități
import java.time.Duration;
public class Main {
public static void main(String[] args) {
System.out.println(Duration.ofMinutes(90));
System.out.println(Duration.ofSeconds(45));
System.out.println(Duration.ofSeconds(3725));
System.out.println(Duration.ofHours(2).plus(Duration.ofMinutes(5)));
System.out.println(Duration.ofMillis(1500));
System.out.println(Duration.ofMinutes(-10));
}
}
Rezultat
PT1H30M
PT45S
PT1H2M5S
PT2H5M
PT1.5S
PT-10M
Exemplul 2: Durata totală a unei liste de melodii
import java.time.Duration;
public class Main {
public static void main(String[] args) {
int[] secunde = {215, 187, 302, 248, 199};
Duration total = Duration.ZERO;
for (int s : secunde) {
total = total.plus(Duration.ofSeconds(s));
}
System.out.printf("Playlist: %d melodii, %d:%02d minute%n",
secunde.length, total.toMinutes(), total.toSecondsPart());
}
}
Rezultat
Playlist: 5 melodii, 19:11 minute
Greșeli frecvente
- Transmiți un
intca timeout unei metode care cereDuration. Creează explicit durata:Duration.ofSeconds(10); așa unitatea este clară.
Comenzi înrudite
Duration: O cantitate de timp exactă, în secunde și nanosecunde (1 oră și 30 de minute); se afișează ca PT1H30M.Duration.toMinutes: Transformă durata într-un număr total de minute (toMinutes) sau milisecunde (toMillis), tăind restul.Duration.plus: Adună două durate și returnează o durată nouă; există și minus, plusMinutes și multipliedBy.TimeUnit: Enumerarea unităților de timp (SECONDS, MINUTES…) folosită la așteptări; face conversii și pauze ușor de citit.