Secondo una statistica in 4 applicazioni su 5 si manipola con date e ore… ma quando serve non ci si ricorda mai da che parte iniziare e ci si affida al miglior amico del programmatore.

Fortunamente in JAVA esistono 2 bellissime classi: SimpleDateFormat e Calendar, che ci rendono più semplice la vita :)!

Di seguito ho raccolto una serie di esempi classici, che spero possano esservi d’aiuto prima o poi.


Ottenere la data / ora odierna (non formattata e non localizzata)

Date now = Calendar.getInstance().getTime();

Ottenere la data / ora odierna formattata gg/mm/aaaa con ora hh:mm:ss

 Calendar now = Calendar.getInstance();
 SimpleDateFormat formatter = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss");
 formatter.format(now.getTime())

Sottrarre 2 anni alla data odierna e successivamente aggiungere 5 giorni ad “oggi”

Calendar now = Calendar.getInstance();
Calendar working;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd 'ore' hh:mm:ss");
working = (Calendar) now.clone();
working.add(Calendar.DAY_OF_YEAR, - (365 * 2));
2 anni fa:  formatter.format(working.getTime());
working = (Calendar) now.clone();
working.add(Calendar.DAY_OF_YEAR, + 5);
5 giorni dopo : formatter.format(working.getTime())

Differenza tra 2 date in giorni

Date startDate1 = new GregorianCalendar(2001, 02, 14, 14, 00).getTime();
Date endDate1   = new Date();;
long diff = endDate1.getTime() - startDate1.getTime();
Differenza in giorni : (diff / (1000L*60L*60L*24L))

Convertire una data dal formato americano a quello italiano (senza ora)

SimpleDateFormat formatterIT = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formatterEN = new SimpleDateFormat("yyyy/MM/dd");
Date dateIT = formatterEN .parse("2007/04/05");
String dataEN = formatterIT .format(dateIT );

[Alcuni esempi idevelopment.info]