請參見IsoFields類,該類允許查詢以周爲基礎的年份和以周爲基礎的年的周。還有一個專用格式化器ISO_WEEK_DATE。
DayOfWeek
枚舉告訴你星期一至星期日1-7的星期幾數。致電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日
謝謝,但我是問代表一天的最週上年周,'7'在'2009年W53- 7'。當完全考慮時,這表示單日的日期。 –
星期幾只是'getDayOfWeek()。getValue()'。 – JodaStephen
請參閱[IdeOne.com上的實時代碼](http://ideone.com/7r0zeP)。 –