Вычитание времени от даты.

Рейтинг: 7Ответов: 2Опубликовано: 28.03.2015

Вот есть такой код:

String stringDate = "12.03.2015 15:48";
    String stringDateFormat = "dd.MM.yyyy HH:mm";
    SimpleDateFormat format = new SimpleDateFormat(stringDateFormat);
    try {
        Date date = format.parse(stringDate);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Как отнять от переменной date 1 час, или 48 минут, или 21 день и т.п.?

Ответы

▲ 11Принят

Используйте Calendar.add с отрицательным аргументом.

Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, -1);
calendar.add(Calendar.MINUTE, -48);
calendar.add(Calendar.DATE, -21);
▲ 7

В Date есть метод getTime, он возвращает long. Число, которое вернет getTime, обозначает значение, которое лежит в Date в миллисекундах. Поэтому достаточно просто отнять от этого числа нужное количество миллисекунд и конвертировать обратно в Date или так оставить. Документация