Получить вчера дату с использованием даты

Следующая функция производит сегодняшнюю дату; как я могу заставить его производить только вчерашнюю дату?

private String toDate() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = new Date();    
        return dateFormat.format(date).toString();
}

Это вывод:

2012-07-10

Мне нужна только вчера дата, как показано ниже. Возможно ли это сделать в моей функции?

2012-07-09

Ответ 1

Вы вычитаете неправильный номер:

Вместо этого используйте Calendar:

private Date yesterday() {
    final Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, -1);
    return cal.getTime();
}

Затем измените свой метод на следующее:

private String getYesterdayDateString() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        return dateFormat.format(yesterday());
}

См

Ответ 2

Вы можете выполнить следующие действия:

private Date getMeYesterday(){
     return new Date(System.currentTimeMillis()-24*60*60*1000);
}

Примечание: если вы хотите, чтобы дальнейшая дата обратной даты умножалась на число дней с 24 * 60 * 60 * 1000, например:

private Date getPreviousWeekDate(){
     return new Date(System.currentTimeMillis()-7*24*60*60*1000);
}

Аналогично, вы можете получить будущую дату, добавив значение в System.currentTimeMillis(), например:

private Date getMeTomorrow(){
     return new Date(System.currentTimeMillis()+24*60*60*1000);
}

Ответ 3

   Calendar cal = Calendar.getInstance();
   DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
   System.out.println("Today date is "+dateFormat.format(cal.getTime()));

   cal.add(Calendar.DATE, -1);
   System.out.println("Yesterday date was "+dateFormat.format(cal.getTime()));  

Использовать Calender Api

Ответ 4

Попробуйте следующее:

private String toDate() {
    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

    // Create a calendar object with today date. Calendar is in java.util pakage.
    Calendar calendar = Calendar.getInstance();

    // Move calendar to yesterday
    calendar.add(Calendar.DATE, -1);

    // Get current date of calendar which point to the yesterday now
    Date yesterday = calendar.getTime();

    return dateFormat.format(yesterday).toString();
}

Ответ 5

Попробуйте это;

   public String toDate() {
       DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
       Calendar cal = Calendar.getInstance();
       cal.add(Calendar.DATE, -1);
       return dateFormat.format(cal.getTime());
  }

Ответ 6

Calendar cal = Calendar.getInstance();
   DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
   System.out.println("Today date is "+dateFormat.format(cal.getTime()));

   cal.add(Calendar.DATE, -1);
   System.out.println("Yesterday date was "+dateFormat.format(cal.getTime())); 

Ответ 7

Нет прямой функции для получения вчерашней даты.

Чтобы получить вчерашнюю дату, вы должны использовать Calendar путем вычитания -1.

Ответ 8

изменен с вашего кода:

private String toDate(long timestamp) {
    Date date = new Date (timestamp * 1000 -  24 * 60 * 60 * 1000);
   return new SimpleDateFormat("yyyy-MM-dd").format(date).toString();

}

но вам лучше использовать calendar.