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 diversi schemi. Può essere usato con LocalDate, LocalTime e LocalDateTime.
Crea un formattatore con un modello 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 precedente, formatted contiene:
2024-03-15
Analizza una stringa in una data:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);Entrambi i passaggi possono fallire. DateTimeFormatter.ofPattern() genera un'IllegalArgumentException quando il formato stesso non è valido, per esempio ofPattern("invalid"), perché i non è una lettera di formato. LocalDate.parse() genera una DateTimeParseException quando il testo non corrisponde al formato o non rappresenta una data reale, per esempio "2024-13-45". IllegalArgumentException si trova in java.lang, quindi non richiede alcuna importazione:
try {
DateTimeFormatter f = DateTimeFormatter.ofPattern(pattern);
LocalDate d = LocalDate.parse(text, f);
} catch (DateTimeParseException e) {
// il testo non corrisponde al formato
} catch (IllegalArgumentException e) {
// il formato non è valido
}Sfida
FacileCrea un metodo denominato formatDate che accetti tre argomenti:
- Una String (
dateStr): la data, scritta nel formato di input - Una String (
inputPattern) il formato della data di input - Una String (
outputPattern) il formato di output desiderato
Il metodo dovrebbe:
- Analizzare la data di input utilizzando il formato di input
- Formattarla utilizzando il formato di output
- Gestire questi formati:
- "basic": "yyyy-MM-dd"
- "long": "MMMM d, yyyy"
- "short": "MM/dd/yy"
- "custom": La stringa del formato effettivo
I messaggi restituiti dovrebbero essere:
- Se la data non è valida: restituire "Invalid date format"
- Se il formato non è valido: restituire "Invalid pattern"
- In caso di successo: restituire 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));
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Concetti di base degli array 2DAccesso agli elementi degli array 2DCicli annidati con array 2DRiepilogo - Array 2DAddizione e sottrazione di matriciArray irregolariArray 3D e oltreSchemi comuni degli array 2DRiepilogo - Tutto sugli array4HashSet Parte 1
Che cos'è un HashSet?Aggiungere un elementoRimuovere un elementoVerificare se un elemento esisteVuoto e dimensioneSvuotare e clonareRipasso - HashSet7Gestione di base degli errori
Nozioni di base su try-catchBlocco finallyLancio di eccezioniEccezioni personalizzate10Data e ora
Nozioni di base su LocalDateOperazioni con LocalTimeUtilizzo di LocalDateTimePeriod e DurationFormattazione delle dateGestione dei fusi orari2HashMap Parte 1
Che cos'è una HashMap?Dichiarare una HashMapAccedere ai valoriVerificare se una chiave esisteModificare i dizionariRiepilogo - HashMap3HashMap Parte 2
Metodi di HashMapIterare con keySet()Iterare con entrySet()HashMap annidateRiepilogo - Gestire il magazzinoRiepilogo - Operazioni con HashMap6Flusso di controllo avanzato
Istruzioni con etichettaEspressione switchCorrispondenza dei patternClausole guardiaRiepilogo - Flusso di controllo9Progetto - Contatore di parole uniche
Inserimento e memorizzazione del testoElaborazione delle paroleEsercitati da solo: Compilatore Java online