web-dev-qa-db-ja.com

日の週番号から、JodaTimeで日の名前を取得します

曜日数値:2(週が月曜日に始まる場合は火曜日と一致するはずです)があります。

この数値から、Java Joda Timeを使用して?Javascriptではmoment.jsを使用してそれを行うのは非常に簡単です。

moment().day(my number)
16
Odyssee

ジョーダタイム

少なくともこれは機能しますが、それほどニースではないと思います。

LocalDate date = new LocalDate();
date = date.withDayOfWeek(2);
System.out.println(DateTimeFormat.forPattern("EEEE").print(date));

残念ながら、 Joda-Time は曜日の列挙型を提供していません(Java.timeは提供しています)。私は巨大なAPIで別の方法をすぐに見つけませんでした。たぶん、一部のJoda専門家は、より良い解決策を知っています。

追加(@BasilBourqueに感謝):

LocalDate date = new LocalDate();
date = date.withDayOfWeek(2);
System.out.println(date.dayOfWeek().getAsText());

Java.time

Java.timeJSR 310 、Java 8以降)、 DayOfWeekenum

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]);
36
Meno Hochschild

あなたはそれを自分で行うことができます

String[] dayNames = new String[]{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
String name = dayNames[day-1];

そして、これはライブラリを必要としません:)

0
jjurm

Jodaを使用すると、次のことができます。

 DateTime curTime = new DateTime();
 curTime.dayOfWeek().getAsText(Locale.ENGLISH);

Localeをロケールに置き換えます。

Monday or Tuesdayなどの曜日の名前を返す必要があります

0
M. Hig