Duration.ofMinutes în Java

Creează o durată dintr-un număr de minute (ofMinutes) sau secunde (ofSeconds); 90 de minute devin PT1H30M.

Sintaxă
static Duration ofMinutes(long minute)
static Duration ofSeconds(long secunde)
static Duration ofHours(long ore)
static Duration ofMillis(long milisecunde)

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 int ca timeout unei metode care cere Duration. 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.