2014-06-19 11 views
10

Ho un problema nel calcolare un intero elenco di nomi dei giorni della settimana, utilizzando JodaTime. In pratica, mi piacerebbe vedere un output simile basata su Locale:Come posso ottenere i nomi dei giorni della settimana in JodaTime

1 day: Sunday 
2 day: Monday 
3 day: Tuesday 
4 day: Wednesday 
5 day: Thursday 
6 day: Friday 
7 day: Saturday 

Come posso fare? Sono nuovo nelle librerie JodaTime ...

Grazie!

+0

Cosa hai provato? – Niemand

risposta

9

Da userguide jodatime http://joda-time.sourceforge.net/userguide.html:

Per esempio, il modo diretto per ottenere il giorno della settimana per un determinato DateTime, è necessario chiamare il Metodo

int iDoW = dt.getDayOfWeek(); 

where iDoW can take the values (from class DateTimeConstants). 

public static final int MONDAY = 1; 
public static final int TUESDAY = 2; 
public static final int WEDNESDAY = 3; 
public static final int THURSDAY = 4; 
public static final int FRIDAY = 5; 
public static final int SATURDAY = 6; 
public static final int SUNDAY = 7; 


... 
Localized versions of these methods are also available, thus 
    DateTime.Property pDoW = dt.dayOfWeek(); 
    String strTF = pDoW.getAsText(Locale.FRENCH); // returns "Lundi", etc. 

EDIT Se si utilizza Locale predefinito

DateTime.Property pDoW = dt.dayOfWeek(); 
String strTF = pDoW.getAsText(Locale.getDefault()); 
+0

Grazie !! :) ultima domanda: come posso lavorare con Locale.getDefault()? potrebbero essere modificati i valori dalla classe DateTimeConstants? – user3449772

+0

@ user3449772 risposta aggiornata – dkatzel

15

Sembra un lavoro per DateTimeFormatter

Vorrei iniziare con

DateTime dt = new DateTime(); 
DateTimeFormatter fmt = DateTimeFormat.forPattern("EEEE"); // use 'E' for short abbreviation (Mon, Tues, etc) 
String strEnglish = fmt.print(dt); 
String strFrench = fmt.withLocale(Locale.FRENCH).print(dt); 
String strWhereverUR = fmt.withLocale(Locale.getDefault()).print(dt); 

e passare da lì

+0

Grazie amico! :) buona soluzione ... ma, posso lavorare con Locale.getdefault()? Non gestivo tutte le impostazioni internazionali ... – user3449772

+0

Dovrebbe funzionare bene. Non dimenticare di accettare la soluzione. – sevensevens

+1

In realtà il motivo "E" stampa solo "Ven". Per "Venerdì" usa "EEEE". – kellogs

Problemi correlati