Uso de LocalDateTime
Parte de la sección Lógica y Flujo del Journey de Java de Coddy. Lección 56 de 59.
LocalDateTime en Java combina tanto la fecha como la hora. Es útil cuando necesitas trabajar con ambos componentes, como horarios de eventos o marcas de tiempo.
Crear la fecha y hora actuales
LocalDateTime now = LocalDateTime.now();Crea una fecha y hora específicas:
LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
// 2024-03-15 14:30Después de ejecutar el código anterior, dateTime contiene:
2024-03-15T14:30
Da formato a una fecha y hora:
LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));Analiza una fecha y hora a partir de una cadena con el mismo patrón:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime parsed = LocalDateTime.parse("2024-03-15 14:30", formatter); // 2024-03-15T14:30Sin un formateador, LocalDateTime.parse() solo acepta el formato ISO 2024-03-15T14:30. Una cadena que no se ajuste al patrón lanza una DateTimeParseException, así que envuelve la llamada en un bloque try-catch, como hiciste con LocalDate.parse().
Desafío
FácilCrea un método llamado processDateTime que tome cuatro argumentos:
- Una cadena (
dateTimeStr) con el formato "yyyy-MM-dd HH:mm" - Un entero (
amount) que se sumará o restará - Una cadena (
unit) que puede ser "hours", "days" o "months" - Una cadena (
operation) que puede ser "add" o "subtract"
El método debe:
- Analizar la cadena de fecha y hora de entrada
- Realizar la operación especificada
- Devolver información formateada sobre el resultado
Los mensajes devueltos deben ser:
- Si el formato no es válido: devolver "Invalid date time format"
- Si la unidad no es válida: devolver "Invalid unit"
- Si la operación no es válida: devolver "Invalid operation"
- Si la operación se realiza correctamente: devolver "Original: [datetime], New: [new_datetime], Day: [day_name]", con ambas fechas y horas escritas como
yyyy-MM-dd HH:mmy [day_name] como el día de la semana de la nueva fecha y hora, en mayúsculas (por ejemplo,FRIDAY)
Pruébalo tú mismo
import java.util.Scanner;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String processDateTime(String dateTimeStr, int amount, String unit, String operation) {
// Escribe tu código aquí
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateTimeStr = scanner.nextLine();
int amount = Integer.parseInt(scanner.nextLine());
String unit = scanner.nextLine();
String operation = scanner.nextLine();
System.out.println(processDateTime(dateTimeStr, amount, unit, operation));
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas10Fecha y Hora
Fundamentos de LocalDateOperaciones con LocalTimeUso de LocalDateTimePeriod y DurationFormato de fechasManejo de zonas horarias2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de PalabrasPractica por tu cuenta: Compilador de Java online