2016-09-19 4 views
0

java.timeクラス、またはweek datesのためにその延長ThreeTen-Extra日曜日2010年1月3日なるよう2009-W53-7、具体的に年週の日でサポートがあります。今年週間用としてjava.timeのYear-Week-Dayですか?

曜日なし:

しかし、曜日もどのように表現するのですか?

答えて

1

IsoFieldsクラスを参照してください。このクラスでは、週単位の年と週の曜日を照会できます。専用フォーマッタISO_WEEK_DATEもあります。

DayOfWeek enumは、月曜日から日曜日までの曜日の数を示します。 LocalDate::getDayOfWeek、次にDayOfWeek::getValueに電話してください。

LocalDate ld = LocalDate.now(ZoneId.of("America/Montreal")) ; 

2016年12月7日

int weekOfWeekBasedYear = ld.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR) ; 
int yearOfWeekBasedYear = ld.get(IsoFields.WEEK_BASED_YEAR) ; 
int dayOfWeek = ld.getDayOfWeek().getValue(); 

標準ISO 8601 week date formatsに文字列を構築するために、これらの部品を使用してください。

String yearWeek = yearOfWeekBasedYear + "-W" + String.format("%02d", weekOfWeekBasedYear) ; 

2016-W49

String yearWeekDay = yearWeek + "-" + dayOfWeek ; 

2016-W49-3

か、事前に定義されたDateTimeFormatter.ISO_WEEK_DATEは仕事をしましょう。

String ywd = ld.format(DateTimeFormatter.ISO_WEEK_DATE); 

2016-W49-3

同じフォーマッタは、このような標準の文字列を解析することができます

String input = "2016-W49-3" ; 
LocalDate ldParsed = LocalDate.parse(input , DateTimeFormatter.ISO_WEEK_DATE) ; 

2016年12月7日

+0

おかげで、私は表現について尋ねられた曜日、 '7'で' 2009-W53-年の週の7 '。全体を考慮すると、これは1日の日付を表します。 –

+0

曜日は 'getDayOfWeek()。getValue()'です。 – JodaStephen

+0

[IdeOne.comのライブコード](http://ideone.com/7r0zeP)を参照してください。 –

関連する問題