Menu
Coddy logo textTech

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);
challenge icon

Desafío

Fácil

Crea un método llamado formatDate que tome tres argumentos:

  1. Una String (dateStr) en formato "yyyy-MM-dd"
  2. Una String (inputPattern), el patrón de la fecha de entrada
  3. Una String (outputPattern), el patrón de salida deseado

El método debe:

  1. Analizar la fecha de entrada usando el patrón de entrada
  2. Formatearla usando el patrón de salida
  3. 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));
    }
}
quiz iconPonte a prueba

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