乔达时代
至少这是可行的,尽管我认为它不太好:
LocalDate date = new LocalDate();date = date.withDayOfWeek(2);System.out.println(DateTimeFormat.forPattern("EEEE").print(date));不幸的是,Joda-Time不提供星期几的枚举(java.time提供)。我还没有在庞大的api中快速找到另一种方法。也许一些乔达专家知道更好的解决方案。
添加(感谢@BasilBourque):
LocalDate date = new LocalDate();date = date.withDayOfWeek(2);System.out.println(date.dayOfWeek().getAsText());
java.time
在java.time(JSR 310,Java
8和更高版本)中,使用enum。
DayOfWeek
int day = 2;System.out.println( DayOfWeek.of(2).getDisplayName(TextStyle.FULL, Locale.ENGLISH) );// Output: Tuesday
您可以直接使用特定的枚举实例,而不能使用像这样的幻数
2。该
DayOfWeek枚举为一周的每一天如一个实例
DayOfWeek.TUESDAY。
System.out.println( DayOfWeek.TUESDAY.getDisplayName(TextStyle.FULL, Locale.ENGLISH) );// Output: Tuesday
旧的JDK
为了完善它,这里是旧JDK的解决方案:
int day = 2;DateFormatSymbols dfs = DateFormatSymbols.getInstance(Locale.ENGLISH);System.out.println(dfs.getWeekdays()[day % 7 + 1]);



