1. LocalTimeclasse

La LocalTimeclasse è stata creata per i casi in cui è necessario lavorare con il tempo ma senza una data. Ad esempio, supponi di scrivere un'applicazione sveglia. Ti interessa l'ora, ma non la data.

La LocalTimeclasse è molto simile alla LocalDateclasse: allo stesso modo i suoi oggetti non possono essere modificati dopo la creazione.

Ottenere l'ora corrente

Per creare un nuovo LocalTimeoggetto, è necessario utilizzare il now()metodo statico. Esempio:

LocalTime time = LocalTime.now();

Dove timeè una LocalTimevariabile ed è una chiamata al metodo statico della classe.LocalTime.now()now()LocalTime

Esempio:

Codice Uscita console
LocalTime time = LocalTime.now();
System.out.println("Now = " + time);

Now = 09:13:13.642881600

Il punto è seguito dal numero corrente di nanosecondi.

2. Ottenere un orario specifico

Per ottenere un tempo specifico, è necessario utilizzare il of()metodo statico. Esempio:

LocalTime time = LocalTime.of(hours, minutes, seconds, nanoseconds);

Passi nelle ore, minuti, secondi e nanosecondi.

Esempio:

Codice Uscita console
LocalTime time = LocalTime.of(12, 15, 0, 100);
System.out.println("Now = " + time);
Now = 12:15:00.000000100

A proposito, ci sono altre due varianti di questo metodo:

LocalTime time = LocalTime.of(hours, minutes, seconds);

E

LocalTime time = LocalTime.of(hours, minutes);

Quindi puoi usare quello che ti è più comodo.

Ottenere un tempo basato sull'indice di un secondo

Puoi anche ottenere l'ora dall'indice di un secondo in un giorno. Per fare questo, abbiamo il ofSecondOfDay()metodo statico:

LocalTime time = LocalTime.ofSecondOfDay(seconds);

Dove secondi è il numero di secondi dall'inizio della giornata.

Esempio:

Codice Uscita console
LocalTime time = LocalTime.ofSecondOfDay(10000);
System.out.println(time);

02:46:40

Sì, 10.000 secondi sono poco meno di tre ore. È tutto corretto.

3. Ottenere elementi di tempo

Per ottenere il valore di uno specifico elemento di tempo da un LocalTimeoggetto, abbiamo questi metodi:

Metodo Descrizione
int getHour()
Restituisce le ore
int getMinute()
Restituisce i minuti
int getSecond()
Restituisce i secondi
int getNano()
Restituisce i nanosecondi

Esempio:

Codice Uscita console
LocalTime now = LocalTime.now();
System.out.println(now.getHour());
System.out.println(now.getMinute());
System.out.println(now.getSecond());
System.out.println(now.getNano());

2
46
40
0

4. Modificare l'ora in un LocalTimeoggetto

La LocalTimeclasse ha anche metodi che ti permettono di lavorare con il tempo. L'implementazione di questi metodi è analoga ai metodi della LocalDateclasse: non modificano l' LocalTimeoggetto esistente, ma ne restituiscono uno nuovo con i dati desiderati.

Ecco i metodi della LocalTimeclasse:

Metodo Descrizione
plusHours(int hours)
Aggiunge ore
plusMinutes(int minutes)
Aggiunge minuti
plusSeconds(int seconds)
Aggiunge secondi
plusNanos(int nanos)
Aggiunge nanosecondi
minusHours(int hours)
Sottrae ore
minusMinutes(int minutes)
Sottrae minuti
minusSeconds(int seconds)
Sottrae i secondi
minusNanos(int nanos)
Sottrae i nanosecondi

Esempio:

Codice Uscita console
LocalTime time = LocalTime.now();
LocalTime time2 = time.plusHours(2);
LocalTime time3 = time.minusMinutes(40);
LocalTime time4 = time.plusSeconds(3600);

System.out.println(time);
System.out.println(time2);
System.out.println(time3);
System.out.println(time4);





10:33:55.978012200
12:33:55.978012200
09:53:55.978012200
11:33:55.978012200

Si noti che in ogni caso otteniamo un nuovo tempo relativo all'oggetto originale time. Se aggiungi 3600 secondsun'ora, aggiungi esattamente 1hour.