TL;DR
YearWeek.of( 2016 , 1 )
.atDay( DayOfWeek.MONDAY )
2016-01-04
-
, , . , .
java.time
- java.time, .
WeekFields .
Locale
. JVMs Locale.
int year = 2016;
int week = 1;
int dayOfWeek = 1;
WeekFields weekFields = WeekFields.of ( Locale.CANADA_FRENCH );
LocalDate ld = LocalDate.now ( )
.withYear ( year )
.with ( weekFields.weekOfYear ( ), week )
.with ( weekFields.dayOfWeek ( ), 1 );
System.out.println ( "ld: " + ld );
, (2016 ) (2015 ).
2015-12-27
ISO 8601
ISO 8601 . № 1 , . 52 53 .
, , WeekFields ISO, WeekFields.ISO, 2016-01-04, 2015-12-27.
int year = 2016;
int week = 1;
int dayOfWeek = 1;
WeekFields weekFields = WeekFields.ISO;
LocalDate ld = LocalDate.now ( )
.withYear ( year )
.with ( weekFields.weekOfYear ( ), week )
.with ( weekFields.dayOfWeek ( ), 1 );
System.out.println ( "ld: " + ld );
2016-01-04
YearWeek
, ThreeTen-Extra. YearWeek ISO 8601 .
.
YearWeek yw = YearWeek.of( 2016 , 1 );
toString ISO 8601 yyyy-Www, 2016-W01.
, , Javas DayOfWeek enum.
LocalDate ld = yw.atDay( DayOfWeek.MONDAY );
, 52 53 .
int weeksInWeekBasedYear = yw.lengthOfYear();
java.time
java.time Java 8 . legacy , java.util.Date, Calendar SimpleDateFormat.
Joda-Time, , java.time.
, . Oracle. Qaru . JSR 310.
java.time?
ThreeTen-Extra java.time . java.time. , Interval, YearWeek, YearQuarter, .