在 Java 中,如何使用系统的默认区域设置(语言)获取星期几(星期日、星期一、...、星期六)的字符串

2022-09-01 10:22:45

最简单的方法:

String[] namesOfDays = new String[7] {
    "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"
};

此方法不使用区域设置。因此,如果系统的语言不是英语,则此方法无法正常工作。

使用Joda时间,我们可以这样做:

String[] namesOfDays = new String[7];
LocalDate now = new LocalDate();

for (int i=0; i<7; i++) {
    /* DateTimeConstants.MONDAY = 1, TUESDAY = 2, ..., SUNDAY = 7 */
    namesOfDays[i] = now.withDayOfWeek((DateTimeConstants.SUNDAY + i - 1) % 7 + 1)
        .dayOfWeek().getAsShortText();
}

但是,此方法使用今天的日期和日历计算,这对于最终目的毫无用处。另外,它有点复杂。

有没有一种简单的方法可以获得字符串,如,,...,具有系统的默认区域设置?"Sun""Mon""Sat"


答案 1

如果我没有误解你

 calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.US);

是你要找的。在这里,您可以找到文档,

或者你也可以使用,getShortWeekdays()

String[] namesOfDays = DateFormatSymbols.getInstance().getShortWeekdays()

答案 2
Date now = new Date();
// EEE gives short day names, EEEE would be full length.
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE", Locale.US); 
String asWeek = dateFormat.format(now);

您可以使用所需的日期和时间创建日期。实现您想要的。


推荐