获取昨天 - 不推荐使用Date类型的方法getDate()

时间:2013-02-18 14:09:59

标签: java date

我试着得到昨天的日期。所以我写了下一个函数:

public  String getYestrday() {
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new Date();
    return dateFormat.format(date.getDate() - 1);
}

但它给了我下一个警告:

The method getDate() from the type Date is deprecated

并且它不起作用。

感谢您的帮助。

4 个答案:

答案 0 :(得分:16)

Date#getDate()是JDK 1.1之后的弃用方法。您应该使用Calendar类来操纵日期。

来自API

  

在JDK 1.1之前,Date类有两个附加功能。它   允许将日期解释为年,月,日,小时,分钟,   和第二个值。它还允许格式化和解析日期   字符串。不幸的是,这些功能的API不适合   国际化。从JDK 1.1开始,Calendar类应该是   用于在日期和时间字段与DateFormat类之间进行转换   应该用于格式化和解析日期字符串。相应的   不推荐使用Date中的方法。

使用Date#getDate()使用Calendar#get(Calendar.DATE);

的API中也清楚地记录了这一点
  

已过时。从JDK 1.1版开始,替换为   Calendar.get(Calendar.DAY_OF_MONTH)

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
return dateFormat.format(cal.getTime());

答案 1 :(得分:1)

使用java.util.Calendar执行此操作。或者尝试JODA

答案 2 :(得分:0)

您可以使用Calendar类执行相同的任务:

Calendar c = new Calendar();
//c.add(Calendar.DAY_OF_MONTH, -1);
Date d = c.getTime();

答案 3 :(得分:0)

以下为我工作

int date = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);