Data in italiano in java
Prima di un corso che ho seguito (che tra l'altro non era incentrato sulla programmazione,ma la sfiorava solo qua e là) la data in italiano la facevo tramite un switch:
public static String dataoggi(){
Calendar c=new GregorianCalendar();
String time,day,month,secondi;
time=day=month=secondi=null;
int gmese=c.get(Calendar.DAY_OF_MONTH);
int giorno=c.get(Calendar.DAY_OF_WEEK);
int mese=c.get(Calendar.MONTH);
int anno=c.get(Calendar.YEAR);
int ore=c.get(Calendar.HOUR_OF_DAY);
int min=c.get(Calendar.MINUTE);
int sec=c.get(Calendar.SECOND);
switch(giorno){
case 1: day="Domenica"; break;
case 2: day="Lunedi"; break;
case 3: day="Martedi"; break;
case 4: day="Mercoledi"; break;
case 5: day="Giovedi"; break;
case 6: day="Venerdi"; break;
case 7: day="Sabato"; break;
default: day="Errore";
}
switch(mese){
case 0: month="Gennaio"; break;
case 1: month="Febbraio"; break;
case 2: month="Marzo"; break;
case 3: month="Aprile"; break;
case 4: month="Maggio"; break;
case 5: month="Giugno"; break;
case 6: month="Luglio"; break;
case 7: month="Agosto"; break;
case 8: month="Settembre"; break;
case 9: month="Ottobre"; break;
case 10: month="Novembre"; break;
case 11: month="Dicembre"; break;
default: month="Errore";
}
// ci assicuriamo che stampi 04 non 4 per i minuti
time=Integer.valueOf(min).toString();
if(min<10)
time="0"+time;
// ci assicuriamo che stampi 04 non 4 per i secondi
secondi=Integer.valueOf(sec).toString();
if(sec<10)
secondi="0"+secondi;
s=day+" "+gmese+" "+month+" "+anno+",ore "+ore+":"+time+":"+secondi;
return s;
}
Ci vuole un po' ma alla fine si arriva al risultato. Una maniera più efficace è di usare le Locali:
import java.util.*;
import java.text.*;
class ShowItalianDateJava {
public static void main(String [] argv) {
Locale itLocale = new Locale("it", "IT");
DateFormat dfshort = DateFormat.getDateInstance(DateFormat.SHORT, itLocale);
DateFormat dflong = DateFormat.getDateInstance(DateFormat.LONG, itLocale);
DateFormat dftimedate = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.FULL,itLocale);
Date today = new Date();
System.out.println("SHORT: "+dfshort.format(today));
System.out.println("LONG: "+dflong.format(today));
System.out.println("TIME - MEDIUM e FULL: "+dftimedate.format(today));
}
}
Il codice è molto più compatto,niente switch e mostra diversi formati di rappresentazione della data.
09:28
|
Categorie:
java
|
This entry was posted on 09:28
and is filed under
java
.
You can follow any responses to this entry through
the RSS 2.0 feed.
You can leave a response,
or trackback from your own site.
Iscriviti a:
Commenti sul post (Atom)
0 comments:
Posta un commento