我有星期几:2(如果星期从星期一开始,则应该与星期二匹配)。
从这个数字中可以找到使用Joda Time在Java中的一天的名称吗?在javascript中,使用moment.js相当容易:
moment().day(my number)
至少这是可行的,尽管我认为它不太好:
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(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的解决方案:
int day = 2;
DateFormatSymbols dfs = DateFormatSymbols.getInstance(Locale.ENGLISH);
System.out.println(dfs.getWeekdays()[day % 7 + 1]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句