Получить вчера дату с использованием даты
Следующая функция производит сегодняшнюю дату; как я могу заставить его производить только вчерашнюю дату?
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.