使用date获取昨天的date
以下函数产生今天的date; 我怎样才能使它只产生昨天的date?
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
我只需要像下面这样的昨天的date。 有没有可能在我的function呢?
2012-07-09
你正在减去错误的数字:
改用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()); }
看到
- IDEOne演示
你可以做以下事情:
private Date getMeYesterday(){ return new Date(System.currentTimeMillis()-24*60*60*1000); }
注意:如果您想要更进一步的落后date乘以24 * 60 * 60 * 1000的天数,例如:
private Date getPreviousWeekDate(){ return new Date(System.currentTimeMillis()-7*24*60*60*1000); }
同样,您可以通过将值添加到System.currentTimeMillis()来获得将来的date,例如:
private Date getMeTomorrow(){ return new Date(System.currentTimeMillis()+24*60*60*1000); }
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()));
使用日历Api
试试这个:
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(); }
尝试这个;
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()); }
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()));
从您的代码更改:
private String toDate(long timestamp) { Date date = new Date (timestamp * 1000 - 24 * 60 * 60 * 1000); return new SimpleDateFormat("yyyy-MM-dd").format(date).toString();
}
但是你用日历做得更好。
没有直接的function来获取昨天的date。
要获取昨天的date,您需要使用Calendar
减去-1
。