, .
.Date/.Calendar
java.util.Date .Calendar Java, , . .
Joda-Time java.time
. Java :
. , 3 4 .
, JVM . sys - - Java- JVM setDefault .
Joda-Time 2.7.
, /. UTC, DateTimeZone.UTC.
DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
. .
DateTime dateTime = DateTime.now( zone );
, . , Joda-Time # 1 , , java.util.Calendar. - , ( , ).
int dayOfWeek = DateTimeConstants.SATURDAY;
withDayOfWeek . (?:), , , .
DateTime future = ( dateTime.getDayOfWeek() < dayOfWeek )
? dateTime.withDayOfWeek( dayOfWeek )
: dateTime.plusWeeks( 1 ).withDayOfWeek( dayOfWeek );
You can adjust the time of day at the first moment of the day to emphasize the focus on the day, rather than a specific moment during the day.
future = future.withTimeAtStartOfDay();
Dump for the console.
System.out.println( "Next day # " + dayOfWeek + " after " + dateTime + " is " + future );
At startup.
Next day # 6 after 2015-04-18T16:03:36.146-04:00 is 2015-04-25T00:00:00.000-04:00