Formattazione con DateTimeFormatter
Analizzi e formatti le date
Formattazione con DateTimeFormatter è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.
Convertire le date in testo
Il metodo toString predefinito di una data la stampa in formato ISO. Per controllare l'aspetto o analizzare testo non ISO, utilizzi DateTimeFormatter del package java.time.format.
Un pattern personalizzato
Crei un formatter con ofPattern. Le lettere rappresentano i campi: yyyy per l'anno, MM per il mese, dd per il giorno.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
System.out.println(date.format(f));
}
}Formattare l'ora
I pattern per l'ora usano HH per le ore nel formato a 24 ore, mm per i minuti e ss per i secondi.
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalTime time = LocalTime.of(14, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("HH:mm:ss");
System.out.println(time.format(f));
}
}Combinare data e ora
Un pattern può includere sia i campi della data sia quelli dell'ora per un LocalDateTime.
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime dt = LocalDateTime.of(2026, 5, 30, 9, 45);
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
System.out.println(dt.format(f));
}
}Nomi dei mesi in formato testuale
Ripetere la lettera del mese ne modifica il formato: MM è un numero, MMM è un nome abbreviato come May e MMMM è il nome completo.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMMM yyyy", Locale.ENGLISH);
System.out.println(date.format(f));
}
}Nomi dei giorni della settimana
Utilizzi EEEE per il nome completo del giorno della settimana e EEE per la forma abbreviata. Fornisca una Locale per ottenere una lingua prevedibile.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("EEEE, dd MMM", Locale.ENGLISH);
System.out.println(date.format(f));
}
}Orologio a dodici ore
Utilizzi hh in minuscolo per le ore nel formato a 12 ore e a per l'indicatore AM o PM.
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
LocalTime time = LocalTime.of(15, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH);
System.out.println(time.format(f));
}
}Analizzare con un pattern
Lo stesso formatter analizza il testo e lo riconverte in una data. Lo passi come secondo argomento a parse.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date = LocalDate.parse("30/05/2026", f);
System.out.println(date.getMonth());
}
}Gestire input non validi
Se il testo non corrisponde al pattern, l'analisi genera una DateTimeParseException. Racchiuda l'analisi soggetta a errori in un blocco try-catch.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static void main(String[] args) {
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
try {
LocalDate.parse("not a date", f);
} catch (DateTimeParseException e) {
System.out.println("Invalid date format!");
}
}
}Formatter predefiniti
Per le esigenze più comuni può evitare i pattern e utilizzare formatter predefiniti come DateTimeFormatter.ISO_DATE.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date.format(DateTimeFormatter.ISO_DATE));
}
}Riutilizzare i formatter
DateTimeFormatter è immutabile e thread-safe, quindi lo crei una sola volta e lo riutilizzi. Fornisca sempre una Locale quando sono presenti nomi, per mantenere uniforme l'output.
Verifica rapida
Verifichi la Sua conoscenza della formattazione.
Riepilogo
Ha imparato a formattare date e ore:
DateTimeFormatter.ofPatterndefinisce un output personalizzato- Le lettere corrispondono ai campi:
yyyy,MM,dd,HH,mm - Un numero maggiore di lettere ripetute produce forme testuali come
MMMMeEEEE - Lo stesso formatter analizza il testo e genera una
DateTimeParseExceptionin caso di input non valido - I formatter sono immutabili e riutilizzabili; passi una
Localeper i nomi
Domande Frequenti
La lezione «Formattazione con DateTimeFormatter» è gratuita?
Sì — il testo completo di «Formattazione con DateTimeFormatter» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.
Cosa imparerò in «Formattazione con DateTimeFormatter»?
Analizzi e formatti le date Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Java Academy?
Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Formattazione con DateTimeFormatter»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Java Academy?
Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- LocalDate, LocalTime, LocalDateTime
- Instant e Duration
- Period e aritmetica delle date
- Formattazione con DateTimeFormatter