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 fecha y hora actual
LocalDateTime now = LocalDateTime.now();Crear 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
Formatear una fecha y hora:
LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));Desafío
FácilCrea un método llamado processDateTime que tome cuatro argumentos:
- Un String (
dateTimeStr) en formato "yyyy-MM-dd HH:mm" - Un entero (
amount) para agregar o restar - Un String (
unit) ya sea "hours", "days" o "months" - Un String (
operation) ya sea "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 de retorno deben ser:
- Si el formato es inválido: devolver "Invalid date time format"
- Si la unidad es inválida: devolver "Invalid unit"
- Si la operación es inválida: devolver "Invalid operation"
- Para éxito: devolver "Original: [datetime], New: [new_datetime], Day: [day_name]"
Hoja de referencia
LocalDateTime combina tanto la fecha como la hora en Java.
Crear fecha y hora actual:
LocalDateTime now = LocalDateTime.now();Crear una fecha y hora específica:
LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
// Resulta en: 2024-03-15T14:30Formatear una fecha y hora:
LocalDateTime dateTime = LocalDateTime.of(2024, 3, 15, 14, 30);
String formatted = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));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 Palabras