Corsi on-line

Formattazione delle date in Java

Quando si è alle prime armi nella programmazione con questo linguaggio, uno dei problemi che più frequentemente ci si trova a dover risolvere durante la realizzazione di semplici applicazioni Java è quello relativo alla formattazione delle date. Si tratta di un’operazione abbastanza comune in fase di sviluppo, anche con strumenti differenti rispetto a Java, per via del fatto che i formati di default utilizzati a runtime dai vari linguaggi sono spesso differenti da quello comunemente utilizzato in Italia (giorno-mese-anno).Java

SimpleDateFormat è una classe concepita appositamente per la formattazione e il parsing delle date in una modalità locale-sensitive, cioè adeguata alla datazione in corso nell’area geografica del sistema in cui viene utilizzata un’applicazione; effettua in sostanza delle operazioni di normalizzazione delle date e prevede la formattazione da data a testo e il parsing da testo a data.

Questo significa che un oggetto/data potrà essere formattato come un testo, ma al momento della lettura verrà comunque interpretato come una data. Il semplice esempio seguente mostra come sia possibile  inizializzare una data tramite il metodo Date(), specificare il formato desiderato per la data (nel nostro caso “giorno/mese/anno”), creare un oggetto di SimpleDateFormat e formattarlo tramite il parametro DATE_FORMAT.

import java.text.SimpleDateFormat;
import java.util.Date;
 
public class FormattaData{
  public static void main(String args[]){
  Date data = new Date();
  String DATE_FORMAT = "dd/MM/yyyy";
  SimpleDateFormat formd = new SimpleDateFormat(DATE_FORMAT);
  System.out.println("Oggi è il " + formd.format(data) );
  } 
}

Chiaramente sarà possibile utilizzare qualsiasi formato possa poi essere interpretato da un’applicazione come una data reale. Nel caso dell’esempio proposto in precedenza la procedura verrà effettuata a carico della data corrente, ma sarà anche possibile specificare una data precisa da parsare:

SimpleDateFormat formd = new SimpleDateFormat("dd/MM/yyyy");
try
{
Date data = formd.parse("18/05/2016");
System.out.println(data);
}

Per un ulteriore approfondimento sull’argomento è possibile fare riferimento alla documentazione ufficiale di Java e della classe SimpleDateFormat.

Post correlati
I più letti del mese
Tematiche