DateFormatSymbols
.Tramite metodi come
getMonths
o getWeekdays
è possibile recuperare i valori che vengono poi utilizzati nella formattazione delle date.DateFormatSymbols dfs = new DateFormatSymbols(Locale.ITALIAN); String[] monthNames = dfs.getMonths(); for (String month : monthNames) { System.out.println(month); }
L'output sarà:
gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre novembre dicembre
Si deve fare particolare attenzione alle lettere maiuscole/minuscole delle stringhe restituite, che seguiranno la convenzione della lingua selezionata. Ad esempio in italiano i nomi dei mesi e dei giorni sono dei nomi comuni ed hanno l'iniziale minuscola (gennaio, febbraio, ...) mentre in inglese i nomi iniziano con la lettera maiuscola (January, February, ...).
Un'altra particolarità, dovuta alle stranezze della classe
Calendar
, sono gli array di stringhe restituiti: nel caso dei mesi l'array ha 12 elementi che hanno indici da 0 a 11; nel caso dei giorni della settimana invece l'array ha 8 elementi, con il primo elemento, quello con indice 0, contenente una stringa vuota, gli elementi successivi contengono i nomi dei giorni della settimana, a partire dalla domenica.Qual è la causa di questa anomalia?
Questi array vengono acceduti utilizzando come indici le costanti della classe
Calendar
, quindi l'anomalia dell'array dei nomi dei giorni è dovuta al fatto che mentre le costanti che rappresentano i mesi partono da 0 (Calendar.JANUARY == 0
), le costanti che identificano i giorni della settimana partono da 1 (Calendar.SUNDAY == 1
).DateFormatSymbols dfs = new DateFormatSymbols(Locale.ITALIAN); String[] weekdays = dfs.getWeekdays(); for (int i = 0; i < weekdays.length; i++) { System.out.println(i + " " + weekdays[i]); }Visualizza
0 1 domenica 2 lunedì 3 martedì 4 mercoledì 5 giovedì 6 venerdì 7 sabato
Vedi anche:
DateFormatSymbols
Nessun commento:
Posta un commento