[java] Java에서 날짜를 하루 씩 늘리려면 어떻게해야합니까?

이 형식의 날짜로 작업하고 있습니다. yyyy-mm-dd .

이 날짜를 하루 씩 늘리려면 어떻게해야합니까?



답변

이와 같은 것이 트릭을 수행해야합니다.

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


답변

Java는 C #에 비해 8 공보다 훨씬 낫습니다. 이 유틸리티 메소드는 Calendar.add 메소드 (아마도 유일한 쉬운 방법)를 사용하여 Java SE 6에서 수행하는 방법을 보여줍니다 .

public class DateUtil
{
    public static Date addDays(Date date, int days)
    {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.DATE, days); //minus number would decrement the days
        return cal.getTime();
    }
}

질문에 따라 하루를 추가하려면 다음과 같이 전화하십시오.

String sourceDate = "2012-02-29";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = format.parse(sourceDate);
myDate = DateUtil.addDays(myDate, 1);


답변

java.time

Java 8 이상에서 java.time 패키지 는 이것을 거의 자동으로 만듭니다. ( 튜토리얼 )

String입력 및 출력 가정 :

import java.time.LocalDate;

public class DateIncrementer {
  static public String addOneDay(String date) {
    return LocalDate.parse(date).plusDays(1).toString();
  }
}


답변

Apache의 DateUtils 를 선호합니다 . http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/time/DateUtils.html을 확인 하십시오 . 프로젝트에서 여러 위치를 사용해야 할 때 특히 유용하며이를 위해 하나의 라이너 방법을 작성하고 싶지 않습니다.

API는 말합니다 :

addDays (Date date, int amount) : 날짜에 새 객체를 반환하는 일 수를 추가합니다.

새 Date 객체를 반환하고 이전 객체 자체는 변경하지 않습니다.


답변

SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Calendar cal = Calendar.getInstance();
cal.setTime( dateFormat.parse( inputString ) );
cal.add( Calendar.DATE, 1 );


답변

Calendar 객체를 구성하고 add (Calendar.DATE, 1) 메서드를 사용합니다.


답변

Joda-Time ( https://www.joda.org/joda-time/ )을 살펴보십시오 .

DateTimeFormatter parser = ISODateTimeFormat.date();

DateTime date = parser.parseDateTime(dateString);

String nextDay = parser.print(date.plusDays(1));