Crear un instante a partir de segundos
La clase Instant representa un instante mediante segundos desde la época y una fracción de nanosegundos. Utiliza ofEpochSecond para segundos y ofEpochMilli para milisegundos.
import java.time.Instant;
import java.time.Duration;
import java.time.ZoneId;
Instant instant = Instant.ofEpochSecond(1711972800L);
System.out.println(instant); // 2024-04-01T12:00:00Z
System.out.println(instant.toEpochMilli()); // 1711972800000
System.out.println(instant.atZone(ZoneId.of("Europe/Paris")));Comparar dos timestamps
Compara los instantes después de convertir sus unidades. isBefore, isAfter y equals responden a preguntas distintas de la simple visualización de la hora local.
Instant start = Instant.parse("2024-04-01T12:00:00Z");
Instant end = Instant.parse("2024-04-01T14:30:00Z");
System.out.println(start.isBefore(end)); // true
System.out.println(Duration.between(start, end).toSeconds()); // 9000Interoperar con JDBC
La clase heredada es java.sql.Timestamp, no java.util.Timestamp. Utiliza Timestamp.from(instant) y timestamp.toInstant() si tu capa JDBC lo requiere. El almacenamiento SQL y el controlador deben utilizar una convención de zona horaria coherente.
LocalDateTime representa campos de calendario sin zona horaria. Por sí solo no basta para recuperar un timestamp universal. Para medir duraciones de ejecución, utiliza un reloj monótono como System.nanoTime().
Referencias
Versión en español publicada el 26 de septiembre de 2026.