LocalTime în Java

Ora din zi fără dată (14:30); se creează cu LocalTime.of(ora, minut) sau LocalTime.parse("14:30").

Sintaxă
import java.time.LocalTime;

static LocalTime of(int ora, int minut)
static LocalTime of(int ora, int minut, int secunda)
static LocalTime parse(CharSequence text)

Ce face LocalTime

LocalTime ține doar ora: ore, minute, secunde și nanosecunde, de la 00:00 la 23:59:59.999999999. Nu are dată și nici fus orar. Este bună pentru programul unui magazin, ora de începere a orelor la școală sau ora unei alarme.

LocalTime.of(14, 30) creează ora din numere, iar LocalTime.parse("14:30") sau parse("14:30:15") o citește din text ISO. Constantele LocalTime.MIDNIGHT, NOON, MIN și MAX sunt gata făcute.

Calculele „trec peste” miezul nopții fără să schimbe vreo dată: 23:00 plus 2 ore este 01:00. Comparația se face cu isBefore/isAfter.

Parametri

Parametru Descriere
ora Ora, de la 0 la 23.
minut, secunda De la 0 la 59.
text Pentru parse: ora în format HH:mm sau HH:mm:ss.

Ce returnează

Un LocalTime. Valorile invalide aruncă DateTimeException.

Exemple

Exemplul 1: Este magazinul deschis?

import java.time.LocalTime;

public class Main {
    static final LocalTime DESCHIDE = LocalTime.of(8, 0);
    static final LocalTime INCHIDE = LocalTime.parse("20:30");

    static boolean deschis(LocalTime ora) {
        return !ora.isBefore(DESCHIDE) && ora.isBefore(INCHIDE);
    }

    public static void main(String[] args) {
        for (String s : new String[] {"07:59", "08:00", "13:15", "20:30"}) {
            LocalTime ora = LocalTime.parse(s);
            System.out.println(ora + " -> " + (deschis(ora) ? "deschis" : "închis"));
        }
    }
}

Rezultat

07:59 -> închis
08:00 -> deschis
13:15 -> deschis
20:30 -> închis

Exemplul 2: Părțile unei ore și constante

import java.time.LocalTime;

public class Main {
    public static void main(String[] args) {
        LocalTime t = LocalTime.of(9, 5, 30);
        System.out.println(t + " = ora " + t.getHour() + ", minutul " + t.getMinute() + ", secunda " + t.getSecond());
        System.out.println("Secunde de la miezul nopții: " + t.toSecondOfDay());
        System.out.println("Amiaza: " + LocalTime.NOON + ", miezul nopții: " + LocalTime.MIDNIGHT);
        System.out.println("Ultimul moment: " + LocalTime.MAX);
    }
}

Rezultat

09:05:30 = ora 9, minutul 5, secunda 30
Secunde de la miezul nopții: 32730
Amiaza: 12:00, miezul nopții: 00:00
Ultimul moment: 23:59:59.999999999

Exemplul 3: Orarul unei zile de școală

O oră durează 50 de minute, iar pauza 10 minute. Pornim de la 8:00 și calculăm intervalele.

import java.time.LocalTime;

public class Main {
    public static void main(String[] args) {
        String[] materii = {"Matematică", "Română", "Engleză", "Informatică"};
        LocalTime ora = LocalTime.of(8, 0);
        for (String m : materii) {
            LocalTime sfarsit = ora.plusMinutes(50);
            System.out.println(ora + " - " + sfarsit + "  " + m);
            ora = sfarsit.plusMinutes(10);
        }
    }
}

Rezultat

08:00 - 08:50  Matematică
09:00 - 09:50  Română
10:00 - 10:50  Engleză
11:00 - 11:50  Informatică

Greșeli frecvente

  • Verifici un interval care trece peste miezul nopții (22:00 – 06:00) cu isAfter(start) && isBefore(sfarsit). Condiția nu este adevărată niciodată; în acest caz folosește ||.
  • Folosești LocalTime pentru durate (de exemplu „2 ore și 30 de minute de lucru”). Pentru cantități de timp folosește Duration.

Comenzi înrudite

  • LocalTime.plusMinutes: Returnează o oră nouă cu minutele adunate; după 23:59 se reia de la 00:00, fără să schimbe vreo dată.
  • LocalDateTime: Data și ora împreună (2026-10-19T14:30), fără fus orar. LocalDateTime.now() dă momentul curent după ceasul local.
  • Duration: O cantitate de timp exactă, în secunde și nanosecunde (1 oră și 30 de minute); se afișează ca PT1H30M.
  • DateTimeFormatter: Descrie cum se scrie sau se citește o dată ca text; ofPattern(„dd.MM.yyyy”) creează un format din litere.