Formato de fechas
Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 58 de 59.
DateTimeFormatter en Java permite formatear fechas y horas en diferentes patrones. Se puede usar con LocalDate, LocalTime y LocalDateTime.
Crear un formateador con un patrón específico:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");Formatea una fecha usando el formateador:
LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);Después de ejecutar el código anterior, formatted contiene:
2024-03-15
Parsear una cadena en una fecha:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);Desafío
FácilCrea un método llamado formatDate que tome tres argumentos:
- Una String (
dateStr) en formato "yyyy-MM-dd" - Una String (
inputPattern), el patrón de la fecha de entrada - Una String (
outputPattern), el patrón de salida deseado
El método debe:
- Analizar la fecha de entrada usando el patrón de entrada
- Formatearla usando el patrón de salida
- Manejar estos patrones:
- "basic": "yyyy-MM-dd"
- "long": "MMMM d, yyyy"
- "short": "MM/dd/yy"
- "custom": La cadena del patrón real
Los mensajes de retorno deben ser:
- Si la fecha es inválida: devolver "Invalid date format"
- Si el patrón es inválido: devolver "Invalid pattern"
- En caso de éxito: devolver la fecha formateada
Hoja de referencia
DateTimeFormatter permite formatear fechas y horas con patrones específicos:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");Formatea una fecha usando el formateador:
LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);Analiza una cadena en una fecha:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);Pruébalo tú mismo
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String formatDate(String dateStr, String inputPattern, String outputPattern) {
// Escribe tu código aquí
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
String inputPattern = scanner.nextLine();
String outputPattern = scanner.nextLine();
System.out.println(formatDate(dateStr, inputPattern, outputPattern));
}
}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