Никогда, никогда не полагаться на миллисекунды арифметики, есть слишком много правил и подводных камней, чтобы сделать его любого достоинства (даже за небольшой промежуток времени), вместо того, чтобы использовать специальную библиотеку, как Java-8 в Time API, JodaTime или даже Calendar
Java 8
LocalDateTime now = LocalDateTime.now();
LocalDateTime then = now.plusDays(7);
System.out.println(now);
System.out.println(then);
Какие выходы
2015-09-16T15:34:14.771
2015-09-23T15:34:14.771
JodaTime
LocalDateTime now = LocalDateTime.now();
LocalDateTime then = now.plusDays(7);
System.out.println(now);
System.out.println(then);
Какие выходы
2015-09-16T15:35:19.954
2015-09-23T15:35:19.954
Календарь
Если вы не можете использовать Java 8 или JodaTime
Calendar cal = Calendar.getInstance();
Date now = cal.getTime();
cal.add(Calendar.DATE, 7);
Date then = cal.getTime();
System.out.println(now);
System.out.println(then);
Какие выходы
Wed Sep 16 15:36:39 EST 2015
Wed Sep 23 15:36:39 EST 2015
nb: «Проблема», с которой вы, похоже, сталкиваетесь, не проблема, а просто тот факт, что за этот период ваш часовой пояс, кажется, ввел/отключил дневную экономию, поэтому Date
отображение времени, с его правильным смещением
Использование API Java 8 Time, использование JodaTime, использование 'Calendar' для любви к здравомыслию, но НЕ пытайтесь использовать миллисекундную арифметику – MadProgrammer
@MadProgrammer на самом деле, если вы не используете Joda Time пока, в настоящее время вам лучше использовать threetenbp вместо – fge
Я согласен с @MadProgrammer. Использование 'JodaTime' сделает это очень простым. Joda предоставляет такие методы, как 'plusWeek()', где вы можете добавить недели к заданной дате – TheLostMind