LocalDateTime.of în Java

of creează o dată cu oră din valori; parse citește una dintr-un text (ISO 2026-10-19T14:30 sau un format dat).

Sintaxă
static LocalDateTime of(int an, int luna, int zi, int ora, int minut)
static LocalDateTime of(int an, int luna, int zi, int ora, int minut, int secunda)
static LocalDateTime of(LocalDate data, LocalTime ora)
static LocalDateTime parse(CharSequence text)
static LocalDateTime parse(CharSequence text, DateTimeFormatter format)

Ce face LocalDateTime.of

LocalDateTime.of(2026, 10, 19, 14, 30) creează data și ora din numere. Există variante cu secunde și nanosecunde, cu luna ca Month, sau din două obiecte separate (LocalDate și LocalTime). Valorile invalide (ora 25, 31 aprilie) aruncă DateTimeException.

LocalDateTime.parse(text) citește formatul ISO, cu T între dată și oră: "2026-10-19T14:30:00". Pentru alte formate (19.10.2026 14:30) dai un DateTimeFormatter. Un text care nu se potrivește aruncă DateTimeParseException.

Parametri

Parametru Descriere
an, luna, zi Data (luna de la 1 la 12).
ora, minut, secunda Ora (0-23), minutul și secunda (0-59).
text Pentru parse: textul de citit.
format Pentru parse, opțional: un DateTimeFormatter.

Ce returnează

Un LocalDateTime nou.

Exemple

Exemplul 1: Din numere și din text

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        LocalDateTime tren = LocalDateTime.of(2026, 10, 19, 7, 45);
        LocalDateTime iso = LocalDateTime.parse("2026-10-19T14:30:15");
        DateTimeFormatter ro = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
        LocalDateTime dinFormular = LocalDateTime.parse("24.12.2026 18:00", ro);

        System.out.println("Trenul Iași - București: " + tren);
        System.out.println("Din ISO: " + iso);
        System.out.println("Cina de Crăciun: " + dinFormular);
    }
}

Rezultat

Trenul Iași - București: 2026-10-19T07:45
Din ISO: 2026-10-19T14:30:15
Cina de Crăciun: 2026-12-24T18:00

Exemplul 2: Valori invalide

import java.time.DateTimeException;
import java.time.LocalDateTime;

public class Main {
    public static void main(String[] args) {
        try {
            System.out.println(LocalDateTime.of(2026, 10, 19, 24, 0));
        } catch (DateTimeException e) {
            System.out.println("of: " + e.getMessage());
        }
        try {
            System.out.println(LocalDateTime.parse("2026-10-19 14:30"));
        } catch (DateTimeException e) {
            System.out.println("parse: " + e.getMessage());
        }
    }
}

Rezultat

of: Invalid value for HourOfDay (valid values 0 - 23): 24
parse: Text '2026-10-19 14:30' could not be parsed at index 10

Greșeli frecvente

  • Dai lui parse un text cu spațiu între dată și oră ("2026-10-19 14:30"). Formatul ISO cere T; altfel folosește un formatter cu "yyyy-MM-dd HH:mm".
  • Scrii ora 24:00 pentru miezul nopții. Ora merge de la 0 la 23; miezul nopții este 00:00 a zilei următoare.

Comenzi înrudite

  • LocalDateTime: Data și ora împreună (2026-10-19T14:30), fără fus orar. LocalDateTime.now() dă momentul curent după ceasul local.
  • LocalDate.parse: Transformă un text într-o dată: implicit formatul ISO 2026-10-19, sau orice format dat printr-un DateTimeFormatter.
  • DateTimeFormatter: Descrie cum se scrie sau se citește o dată ca text; ofPattern(„dd.MM.yyyy”) creează un format din litere.
  • LocalDateTime.format: Scrie data și ora ca text după un șablon, de exemplu „19.10.2026 14:30”.