Per poter stampare la data in un formato predefinito java.text mette a disposizione 2 classi molto utili:
[list=1][*]java.text.DateFormat[*]java.text.SimpleDateFormat[/list=1]
La prima prevede un formato data in funzione delle impostazioni regionali della macchina. Una volta istanziato possiede già tutte le informazioni su come stampare la data catturandole dalla macchina che esegue il software.
Esempio di uso
codice:
import java.util.Date
import java.text.DataFormat
Date oggi = new Date();
DataFormat df = DataFormat.getDateInstance();
System.out.println(df.format(oggi));
La seconda classe prevende un sistema di definizione formato data a partire da un pattern passato in input al costruttore.
I parametri di questo pattern sono ben specificati nelle API.
Esempio di uso
codice:
import java.util.Date
import java.text.SimpleDataFormat
Date oggi = new Date();
// Fomato giorno (dd) - mese (MM) - anno
SimpleDataFormat sdf = new SimpleDataFormat("dd-MM-yyyy");
System.out.println(sdf.format(oggi));
Il metodo format permette la trasformazione dell'oggetto Date in String secondo le specifiche previste.
Poichè il formato per entrambi le classi sono ben definite (DataFormat è fissato dalla classe, SimpleDataFormat è definito dal costruttore) è possibile passare in input a tali classi una String che rispetti il formato e trasformarla direttamente in un oggetto Date
codice:
import java.util.Date
import java.text.SimpleDataFormat
// Fomato giorno (dd) - mese (MM) - anno
SimpleDataFormat sdf = new SimpleDataFormat("dd-MM-yyyy");
String miaData = "31-03-1982"
Date dataDiNascita = sdf.parse(miaData);
System.out.println(dataDiNascita);
System.out.println(sdf.format(dataDiNascita));
Spero di essere stato chiaro
Ciao