Decrement a date in Java

后端 未结 4 2117
野的像风
野的像风 2021-02-20 03:34

I want to get the previous day (24 hours) from the current time.

e.g if current time is Date currentTime = new Date();

2011-04-25 12:

相关标签:
4条回答
  • 2021-02-20 04:13

    24 hours and 1 day are not the same thing. But you do both using Calendar:

    Calendar c = Calendar.getInstance();
    c.setTime(new Date());
    c.add(Calendar.DATE, -1);
    Date d = c.getTime();
    

    If you are going back 24 hours, you would use Calendar.HOUR_OF_DAY

    0 讨论(0)
  • 2021-02-20 04:21

    I would suggest you use Joda Time to start with, which is a much nicer API. Then you can use:

    DateTime yesterday = new DateTime().minusDays(1);
    

    Note that "this time yesterday" isn't always 24 hours ago though... you need to think about time zones etc. You may want to use LocalDateTime or Instant instead of DateTime.

    0 讨论(0)
  • 2021-02-20 04:30

    You can do that using Calendar class:

    Calendar cal = Calendar.getInstance();
    cal.setTime ( date ); // convert your date to Calendar object
    int daysToDecrement = -1;
    cal.add(Calendar.DATE, daysToDecrement);
    date = cal.getTime(); // again get back your date object
    
    0 讨论(0)
  • 2021-02-20 04:30

    please checkout this here: Java Date vs Calendar

    Calendar cal=Calendar.getInstance();
    cal.setTime(date); //not sure if date.getTime() is needed here
    cal.add(Calendar.DAY_OF_MONTH, -1);
    Date newDate = cal.getTime();
    
    0 讨论(0)
提交回复
热议问题