2014-06-19 13 views
10

Tôi đã có một vấn đề để tính toán toàn bộ danh sách tên của các ngày trong tuần, bằng cách sử dụng JodaTime. Về mặt chuyên môn, tôi muốn thấy một kết quả tương tự dựa trên Locale:Làm thế nào tôi có thể lấy tên của các ngày trong tuần trong JodaTime

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

Tôi có thể làm gì? Tôi mới trong thư viện JodaTime ...

Cảm ơn!

+0

bạn đã thử làm gì? – Niemand

Trả lời

9

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

Ví dụ, cách trực tiếp để có được ngày trong tuần cho một DateTime cụ thể, liên quan đến việc gọi phương pháp

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 Nếu sử dụng mặc định Locale

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

Cảm ơn !! :) câu hỏi cuối cùng: làm thế nào tôi có thể làm việc với Locale.getDefault()? có thể được thay đổi giá trị từ lớp DateTimeConstants? – user3449772

+0

@ user3449772 câu trả lời cập nhật – dkatzel

15

Trông giống như một công việc cho DateTimeFormatter

tôi sẽ bắt đầu với

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

và đi từ đó

+0

Cảm ơn người đàn ông! :) giải pháp tốt ... nhưng, tôi có thể làm việc với Locale.getdefault()? Tôi sẽ không quản lý mọi miền địa phương ... – user3449772

+0

Nên hoạt động tốt. Đừng quên chấp nhận giải pháp. – sevensevens

+1

Thực ra mẫu "E" chỉ in "Fri". Đối với "Thứ Sáu", hãy sử dụng "EEEE". – kellogs

Các vấn đề liên quan