2014-06-19 14 views
10

Mam problem z wyliczeniem całej listy nazw dni w tygodniu, używając JodaTime. pratically, chciałbym zobaczyć podobny wynik w oparciu o regionalne:Jak mogę uzyskać nazwy dni tygodnia w JodaTime

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

Jak mogę to zrobić? Jestem nowy w bibliotekach JodaTime ...

Dzięki!

+0

Co pan spróbować? – Niemand

Odpowiedz

9

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

Na przykład, bezpośredni sposób aby uzyskać dzień tygodnia dla określonego DateTime, wymaga wywołania Metoda

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 przypadku korzystania z domyślnych ustawień regionalnych

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

Dzięki! :) ostatnie pytanie: jak mogę pracować z Locale.getDefault()? można zmienić wartości z klasy DateTimeConstants? – user3449772

+0

@ user3449772 zaktualizowana odpowiedź – dkatzel

15

wygląda na zadanie dla DateTimeFormatter

chciałbym zacząć

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); 

i go stamtąd

+0

Dzięki człowieku! :) dobre rozwiązanie ... ale czy mogę pracować z Locale.getdefault()? Nie zarządzałbym każdym Locale ... – user3449772

+0

Powinien działać dobrze. Nie zapomnij przyjąć rozwiązania. – sevensevens

+1

W rzeczywistości wzór "E" drukuje tylko "Pt". Dla "piątku" użyj "EEEE". – kellogs

Powiązane problemy