Menu
Coddy logo textTech

Formattazione delle date

Fa parte della sezione Logica e flusso del percorso Java di Coddy. Lezione 58 di 59.

DateTimeFormatter in Java ti permette di formattare date e orari secondo schemi diversi. Può essere usato con LocalDate, LocalTime e LocalDateTime.

Crea un formattatore con un pattern specifico:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

Formatta una data usando il formattatore:

LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);

Dopo aver eseguito il codice sopra, formatted contiene:

2024-03-15

Analizza una stringa in una data:

String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);
challenge icon

Sfida

Facile

Crea un metodo chiamato formatDate che accetta tre argomenti:

  1. Una stringa (dateStr) nel formato "yyyy-MM-dd"
  2. Una stringa (inputPattern), il modello della data di input
  3. Una stringa (outputPattern), il modello di output desiderato

Il metodo dovrebbe:

  1. Analizzare la data di input usando il modello di input
  2. Formattarla usando il modello di output
  3. Gestire questi modelli:
    • "basic": "yyyy-MM-dd"
    • "long": "MMMM d, yyyy"
    • "short": "MM/dd/yy"
    • "custom": la stringa del modello effettiva

I messaggi restituiti dovrebbero essere:

  • Se la data non è valida: restituisci "Invalid date format"
  • Se il modello non è valido: restituisci "Invalid pattern"
  • In caso di esito positivo: restituisci la data formattata

Provalo tu

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) {
        // Scrivi il tuo codice qui
    }
    
    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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Java online