Clase Java LocalTime
LocalTimees una clase importante de la API de fecha y hora introducida en Java 8 (java.timepaquete), utilizada para representar la hora sin información de zona horaria. Se centra específicamente en la hora del día, con precisión de nanosegundos.
Características de la clase LocalTime
1. Inmutabilidad
LocalTime es una clase inmutable; todas las operaciones de modificación devuelven una nueva instancia y el objeto original permanece sin cambios.
2. Sin información de zona horaria
LocalTime no contiene información de zona horaria; solo representa la hora local.
3. Precisión de tiempo
Admite precisión de tiempo desde horas hasta nanosegundos (HH:mm:ss.nnnnnnnnn).
Crear objetos LocalTime
1. Obtener la hora actual
LocalTime currentTime = LocalTime.now();
System.out.println("当前时间: " + currentTime);
2. Crear usando el método of()
Ejemplo
LocalTime time1 = LocalTime.of(14, 30);
// Crear 09:15:30
LocalTime time2 = LocalTime.of(9, 15, 30);
// Crear 10:20:30.500 (500 milisegundos)
LocalTime time3 = LocalTime.of(10, 20, 30, 500000000);
3. Analizar cadenas
LocalTime parsedTime = LocalTime.parse("08:45");
System.out.println("解析的时间: " + parsedTime);
Métodos comunes
1. Obtener componentes de tiempo
Ejemplo
<p>int hour = time.getHour(); // 15
int minute = time.getMinute(); // 45
int second = time.getSecond(); // 20
int nano = time.getNano(); // 123456789
2. Comparación de tiempos
Ejemplo
LocalTime time2 = LocalTime.of(11, 15);
boolean isBefore = time1.isBefore(time2); // true
boolean isAfter = time1.isAfter(time2); // false
boolean isEqual = time1.equals(time2); // false
3. Operaciones con tiempos
Ejemplo
// Añadir 2 horas
LocalTime plusHours = time.plusHours(2); // 11:00
// Restar 30 minutos
LocalTime minusMinutes = time.minusMinutes(30); // 08:30
// Añadir 1 hora y 15 minutos
LocalTime plusDuration = time.plus(Duration.ofMinutes(75)); // 10:15
4. Ajuste de tiempos
Ejemplo
// Establecer la hora a las 10
LocalTime withHour = time.withHour(10); // 10:30
// Establecer los minutos a 45
LocalTime withMinute = time.withMinute(45); // 14:45
Formateo y análisis
1. Formatear tiempo
Ejemplo
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String formattedTime = time.format(formatter); // "16:45:30"
2. Analizar cadenas de tiempo
Ejemplo
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss a");
LocalTime parsedTime = LocalTime.parse(timeString, formatter);
Ejemplos de aplicaciones prácticas
1. Calcular el intervalo entre dos momentos
Ejemplo
LocalTime end = LocalTime.of(17, 30);
Duration duration = Duration.between(start, end);
System.out.println("Horario de trabajo: " + duration.toHours() + " horas"); // 8 horas
2. Comprobar si está dentro del horario comercial
Ejemplo
LocalTime opening = LocalTime.of(8, 0);
LocalTime closing = LocalTime.of(22, 0);
if (current.isAfter(opening) && current.isBefore(closing)) {
System.out.println("La tienda está abierta");
} else {
System.out.println("La tienda está cerrada");
}
3. Crear un rango de tiempo
Ejemplo
LocalTime end = start.plusHours(8); // 16:00
System.out.println("Horario de trabajo: " + start + " a " + end);
Resumen
LocalTimeEs la clase central de la API de fecha y hora de Java 8 para el manejo de la hora local. Proporciona métodos enriquecidos para crear, manipular y formatear el tiempo. Debido a su inmutabilidad y seguridad de subprocesos (thread-safe),LocalTimees muy adecuada para su uso en entornos multiproceso. DominarLocalTimeel uso de la clase puede simplificar enormemente las tareas de programación relacionadas con el tiempo.