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

// Crear 14:30:00
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

LocalTime time = LocalTime.of(15, 45, 20, 123456789);

<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 time1 = LocalTime.of(10, 30);
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

LocalTime time = LocalTime.of(9, 0);

// 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

LocalTime time = LocalTime.of(14, 30);

// 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

java LocalTime time = LocalTime.of(16, 45, 30);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String formattedTime = time.format(formatter); // "16:45:30"

2. Analizar cadenas de tiempo

Ejemplo

String timeString = "08:15:45 AM";
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 start = LocalTime.of(9, 0);
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 current = LocalTime.now();
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 start = LocalTime.of(8, 0);
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.

Otras extensiones