Ce face Instant.ofEpochSecond
Multe sisteme rețin timpul ca număr: secunde (Unix, baze de date, JWT) sau milisecunde (JavaScript, System.currentTimeMillis()) de la 1 ianuarie 1970 UTC. Instant.ofEpochSecond(n) și Instant.ofEpochMilli(n) transformă aceste numere în momente.
toEpochMilli() face drumul invers și returnează milisecundele ca long; getEpochSecond() returnează secundele. Valorile negative înseamnă momente dinainte de 1970.
Parametri
| Parametru | Descriere |
|---|---|
secunde |
Numărul de secunde de la 1970-01-01T00:00:00Z. |
Ce returnează
ofEpochSecond: un Instant. toEpochMilli: milisecundele, ca long.
Exemple
Exemplul 1: Din timestamp în dată și înapoi
import java.time.Instant;
import java.time.ZoneId;
public class Main {
public static void main(String[] args) {
Instant t = Instant.ofEpochSecond(1_800_000_000L);
System.out.println("UTC: " + t);
System.out.println("București: " + t.atZone(ZoneId.of("Europe/Bucharest")).toLocalDateTime());
System.out.println("Milisecunde: " + t.toEpochMilli());
System.out.println("Epoca: " + Instant.ofEpochSecond(0));
}
}
Rezultat
UTC: 2027-01-15T08:00:00Z
București: 2027-01-15T10:00
Milisecunde: 1800000000000
Epoca: 1970-01-01T00:00:00Z
Exemplul 2: Timestamp venit din JavaScript
Date.now() din JavaScript dă milisecunde; le citim cu ofEpochMilli.
import java.time.Duration;
import java.time.Instant;
public class Main {
public static void main(String[] args) {
long dinBrowser = 1_792_420_200_000L;
Instant trimis = Instant.ofEpochMilli(dinBrowser);
Instant primit = Instant.parse("2026-10-19T11:30:02.750Z");
System.out.println("Trimis: " + trimis);
System.out.println("Întârziere: " + Duration.between(trimis, primit).toMillis() + " ms");
System.out.println("În secunde: " + trimis.getEpochSecond());
}
}
Rezultat
Trimis: 2026-10-19T14:30:00Z
Întârziere: -10797250 ms
În secunde: 1792420200
Greșeli frecvente
- Dai milisecunde lui
ofEpochSecond. Rezultatul este în anul 58000 și ceva; pentru milisecunde foloseșteofEpochMilli. - Pierzi precizia:
toEpochMilli()renunță la micro- și nanosecunde.
Comenzi înrudite
Instant: Un moment exact pe axa timpului, în UTC, măsurat în secunde și nanosecunde de la 1 ianuarie 1970.Duration.toMinutes: Transformă durata într-un număr total de minute (toMinutes) sau milisecunde (toMillis), tăind restul.ZonedDateTime: Data și ora împreună cu fusul orar (Europe/Bucharest); indică un moment exact și știe de ora de vară.ZoneId: Identifică un fus orar (Europe/Bucharest) cu regulile lui de oră de vară; of îl alege, systemDefault dă fusul sistemului.