以下功能产生今天的日期;我怎么能让它只产生昨天的日期?
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
答案 0 :(得分:281)
您正在减去错误的数字:
改为使用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());
}
查看强>
答案 1 :(得分:44)
您可以执行以下操作:
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);
}
答案 2 :(得分:8)
Calendar cal = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("Today's date is "+dateFormat.format(cal.getTime()));
cal.add(Calendar.DATE, -1);
System.out.println("Yesterday's date was "+dateFormat.format(cal.getTime()));
使用Calendar Api
答案 3 :(得分:6)
试试这个:
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();
}
答案 4 :(得分: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());
}
答案 5 :(得分:2)
没有直接的功能来获取昨天的日期。
要获取昨天的日期,您需要通过减去Calendar
来使用-1
。
答案 6 :(得分:2)
从您的代码更改:
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。
答案 7 :(得分:1)
Calendar cal = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("Today's date is "+dateFormat.format(cal.getTime()));
cal.add(Calendar.DATE, -1);
System.out.println("Yesterday's date was "+dateFormat.format(cal.getTime()));