How can I increment a date by one day in Java?

前端 未结 28 1821

I\'m working with a date in this format: yyyy-mm-dd.

How can I increment this date by one day?

相关标签:
28条回答
  • 2020-11-21 07:18

    It's very simple, trying to explain in a simple word. get the today's date as below

    Calendar calendar = Calendar.getInstance();
    System.out.println(calendar.getTime());// print today's date
    calendar.add(Calendar.DATE, 1);
    

    Now set one day ahead with this date by calendar.add method which takes (constant, value). Here constant could be DATE, hours, min, sec etc. and value is the value of constant. Like for one day, ahead constant is Calendar.DATE and its value are 1 because we want one day ahead value.

    System.out.println(calendar.getTime());// print modified date which is tomorrow's date

    Thanks

    0 讨论(0)
  • 2020-11-21 07:18

    Just pass date in String and number of next days

     private String getNextDate(String givenDate,int noOfDays) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            Calendar cal = Calendar.getInstance();
            String nextDaysDate = null;
        try {
            cal.setTime(dateFormat.parse(givenDate));
            cal.add(Calendar.DATE, noOfDays);
    
           nextDaysDate = dateFormat.format(cal.getTime());
    
        } catch (ParseException ex) {
            Logger.getLogger(GR_TravelRepublic.class.getName()).log(Level.SEVERE, null, ex);
        }finally{
        dateFormat = null;
        cal = null;
        }
    
        return nextDaysDate;
    
    }
    
    0 讨论(0)
  • 2020-11-21 07:21

    Java 8 added a new API for working with dates and times.

    With Java 8 you can use the following lines of code:

    // parse date from yyyy-mm-dd pattern
    LocalDate januaryFirst = LocalDate.parse("2014-01-01");
    
    // add one day
    LocalDate januarySecond = januaryFirst.plusDays(1);
    
    0 讨论(0)
  • 2020-11-21 07:22

    Take a look at Joda-Time (https://www.joda.org/joda-time/).

    DateTimeFormatter parser = ISODateTimeFormat.date();
    
    DateTime date = parser.parseDateTime(dateString);
    
    String nextDay = parser.print(date.plusDays(1));
    
    0 讨论(0)
  • 2020-11-21 07:22

    If you want to add a single unit of time and you expect that other fields to be incremented as well, you can safely use add method. See example below:

    SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal = Calendar.getInstance();
    cal.set(1970,Calendar.DECEMBER,31);
    System.out.println(simpleDateFormat1.format(cal.getTime()));
    cal.add(Calendar.DATE, 1);
    System.out.println(simpleDateFormat1.format(cal.getTime()));
    cal.add(Calendar.DATE, -1);
    System.out.println(simpleDateFormat1.format(cal.getTime()));
    

    Will Print:

    1970-12-31
    1971-01-01
    1970-12-31
    
    0 讨论(0)
  • 2020-11-21 07:23

    Something like this should do the trick:

    String dt = "2008-01-01";  // Start date
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Calendar c = Calendar.getInstance();
    c.setTime(sdf.parse(dt));
    c.add(Calendar.DATE, 1);  // number of days to add
    dt = sdf.format(c.getTime());  // dt is now the new date
    
    0 讨论(0)
提交回复
热议问题