使用日期获取昨天的日期

AKI*_*WEB 113 java datetime date simpledateformat

以下函数生成今天的日期; 我怎么能让它只生产昨天的日期?

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

这是输出:

2012-07-10
Run Code Online (Sandbox Code Playgroud)

我只需要昨天的日期,如下所示.可以在我的功能中执行此操作吗?

2012-07-09
Run Code Online (Sandbox Code Playgroud)

Jig*_*shi 298

你正在减去错误的数字:

Calendar改为使用:

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

然后,将您的方法修改为以下内容:

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

看到

  • 使用`yyyy-MM-dd`作为格式 (9认同)

Ank*_*ary 46

你可以这样做:

private Date getMeYesterday(){
     return new Date(System.currentTimeMillis()-24*60*60*1000);
}
Run Code Online (Sandbox Code Playgroud)

注意:如果您想要进一步的向后日期乘以24*60*60*1000的天数,例如:

private Date getPreviousWeekDate(){
     return new Date(System.currentTimeMillis()-7*24*60*60*1000);
}
Run Code Online (Sandbox Code Playgroud)

同样,您可以通过将值添加到System.currentTimeMillis()来获取将来的日期,例如:

private Date getMeTomorrow(){
     return new Date(System.currentTimeMillis()+24*60*60*1000);
}
Run Code Online (Sandbox Code Playgroud)

  • 如果NASA使用你的代码去火星会发生什么? (3认同)
  • 我会向他们收取很多钱;) (3认同)
  • 我想知道在闰秒的边缘会发生什么...... (2认同)
  • 您可以使用TimeUnit.DAYS.toMillis(1)代替计算日期 (2认同)

swa*_*apy 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()));  
Run Code Online (Sandbox Code Playgroud)

使用日历Api


Mei*_*sam 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();
}
Run Code Online (Sandbox Code Playgroud)


Sai*_*Aye 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());
  }
Run Code Online (Sandbox Code Playgroud)