Добавление дней к дате в Java
Как добавить x дней к дате в Java?
Например, моя дата (dd / mm / yyyy) = 01/01/2012
Добавление 5 дней, выход должен быть 06/01/2012
.
- Чтение больших файлов в Java
- Java - Как перетащить JPanel с его компонентами
- Почему Java нуждается в интерфейсе Serializable?
- Извлечение пар слов с помощью String.split ()
- Как разбить список массивов на равные части?
- Как включить JSON в объект с помощью Jackson?
- Java: Как узнать, какой файл jar использовать, используя имя classа?
- Maven - всегда загружайте источники и javadocs
- Анализ журналов gc
- Неправильно ли использовать break для выхода из цикла в Java?
- Помещение JComboBox в JTable
- Как сделать прямоугольник перемещаться по экрану с помощью привязок клавиш?
- Когда использовать примитив и когда ссылочные типы в Java
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Calendar c = Calendar.getInstance(); c.setTime(new Date()); // Now use today date. c.add(Calendar.DATE, 5); // Adding 5 days String output = sdf.format(c.getTime()); System.out.println(output);
java.time
С API Java 8 Дата и время вы можете использовать class LocalDate
.
LocalDate.now().plusDays(nrOfDays)
См. Учебник Oracle .
Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, 1); cal.set(Calendar.MONTH, 1); cal.set(Calendar.YEAR, 2012); cal.add(Calendar.DAY_OF_MONTH, 5);
Вы также можете использовать такие дни, как Calendar.add(Calendar.DAY_OF_MONTH, -5);
Вот простой код для вывода в виде currentdate
+ D days
= some 'x' date
(будущая дата):
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); Calendar c = Calendar.getInstance(); c.add(Calendar.DATE, 5); System.out.println(dateFormat.format(c.getTime()));
Если вы используете Joda-Time (и есть много веских причин – простой, интуитивно понятный API и безопасность streamов), вы можете сделать это тривиально:
(new LocalDate()).plusDays(5);
например, дать 5 дней с сегодняшнего дня.
Простой, без каких-либо других API:
Чтобы добавить 8 дней:
Date today=new Date(); long ltime=today.getTime()+8*24*60*60*1000; Date today8=new Date(ltime);