[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));