从星期几中获取乔达时间的日期名称

奥德赛:

我有星期几:2(如果星期从星期一开始,则应该与星期二匹配)。

从这个数字中可以找到使用Joda Time在Java中的一天的名称吗?在javascript中,使用moment.js相当容易:

moment().day(my number)
Meno Hochschild:

乔达时代

至少这是可行的,尽管我认为它不太好:

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.timeJSR 310,Java 8和更高版本)中,使用enumDayOfWeek

int day = 2;
System.out.println( DayOfWeek.of(2).getDisplayName(TextStyle.FULL, Locale.ENGLISH) );
// Output: Tuesday

您可以直接使用特定的枚举实例,而不能使用像这样幻数2DayOfWeek枚举为一周的每一天如一个实例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]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章