我有一周中的一天数字:2(如果星期一开始一周,则应与星期二相匹配).
从这个数字有一种方法可以使用Joda Time获取Java中的当天名称吗?在javascript中使用moment.js很容易做到:
moment().day(my number)
Run Code Online (Sandbox Code Playgroud)
Men*_*ild 36
至少这是有效的,虽然我认为它不太好:
LocalDate date = new LocalDate();
date = date.withDayOfWeek(2);
System.out.println(DateTimeFormat.forPattern("EEEE").print(date));
Run Code Online (Sandbox Code Playgroud)
不幸的是Joda-Time没有提供星期几的枚举(java.time确实).我还没有在巨大的api中找到另一种方式.也许一些Joda专家知道更好的解决方案.
添加(感谢@BasilBourque):
LocalDate date = new LocalDate();
date = date.withDayOfWeek(2);
System.out.println(date.dayOfWeek().getAsText());
Run Code Online (Sandbox Code Playgroud)
在java.time(JSR 310,Java 8和更高版本)中,使用枚举.DayOfWeek
int day = 2;
System.out.println( DayOfWeek.of(2).getDisplayName(TextStyle.FULL, Locale.ENGLISH) );
// Output: Tuesday
Run Code Online (Sandbox Code Playgroud)
您可以使用特定的枚举实例,而不是直接一个神奇的数字一样2.该DayOfWeek枚举为一周的每一天如一个实例DayOfWeek.TUESDAY.
System.out.println( DayOfWeek.TUESDAY.getDisplayName(TextStyle.FULL, Locale.ENGLISH) );
// Output: Tuesday
Run Code Online (Sandbox Code Playgroud)
为了完成它,这里是旧JDK的解决方案:
int day = 2;
DateFormatSymbols dfs = DateFormatSymbols.getInstance(Locale.ENGLISH);
System.out.println(dfs.getWeekdays()[day % 7 + 1]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15786 次 |
| 最近记录: |