1. 개요
이 사용방법(예제)에서는 Java를 사용하여 날짜를 하루 씩 증가시키는 방법을 살펴 봅니다. Java 8 이전에는 표준 Java 날짜 및 시간 라이브러리가 사용자 친화적이지 않았습니다. 따라서 Joda-Time은 Java 8 이전에 Java의 사실상 표준 날짜 및 시간 라이브러리가되었습니다.
java.util.Calendar 및 Apache Commons와 같이 작업을 수행하는 데 사용할 수있는 다른 클래스와 라이브러리도 있습니다 .
Java 8에는 이전 라이브러리의 단점을 해결하기 위해 더 나은 날짜 및 시간 API가 포함되었습니다.
따라서 Java 8, Joda-Time API, Java의 Calendar 클래스 및 Apache Commons 라이브러리를 사용하여 날짜를 하루 씩 늘리는 방법을 찾고 있습니다 .
2. Maven 의존성
다음 의존성이 pom.xml 파일에 포함되어야 합니다.
<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
</dependencies>
Maven Central 에서 최신 버전의 Joda-Time 및 Apache Commons Lang 최신 버전을 찾을 수 있습니다 .
3. java.time 사용
java.time.LocalDate의 클래스는 불변의 날짜 - 시간 표현을 종종 년 - 월 - 일로 볼 수 있습니다.
LocalDate 에는 날짜 조작을위한 많은 메서드가 있습니다. 동일한 작업을 수행하는 데 사용할 수있는 방법을 살펴 보겠습니다.
public static String addOneDay(String date) {
return LocalDate
.parse(date)
.plusDays(1)
.toString();
}
이 예에서는 java.time.LocalDate 클래스와 plusDays () 메서드를 사용하여 날짜를 하루 씩 증가시킵니다.
이제이 메서드가 예상대로 작동하는지 확인하겠습니다.
@Test
public void givenDate_whenUsingJava8_thenAddOneDay()
throws Exception {
String incrementedDate = addOneDay("2018-07-03");
assertEquals("2018-07-04", incrementedDate);
}
4. java.util.Calendar 사용
또 다른 접근법은 java.util.Calendar 및 해당 add () 메소드를 사용하여 날짜를 증가시키는 것입니다.
날짜 형식화를 위해 java.text.SimpleDateFormat 과 함께 사용 합니다.
public static String addOneDayCalendar(String date)
throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(date));
c.add(Calendar.DATE, 1);
return sdf.format(c.getTime());
}
java.text.SimpleDateFormat 은 예상 날짜 형식이 사용되는지 확인하기 위해 있습니다. 날짜는 add () 메서드 를 통해 증가합니다 .
다시 한 번이 접근 방식이 의도 한대로 작동하는지 확인해 보겠습니다.
@Test
public void givenDate_whenUsingCalendar_thenAddOneDay()
throws Exception {
String incrementedDate = addOneDayCalendar("2018-07-03");
assertEquals("2018-07-04", incrementedDate);
}
5. Joda-Time 사용
org.joda.time.DateTime의 클래스는 도움이 제대로 날짜와 시간을 처리하는 많은 방법이있다.
이를 사용하여 날짜를 하루 씩 늘리는 방법을 살펴 보겠습니다.
public static String addOneDayJodaTime(String date) {
DateTime dateTime = new DateTime(date);
return dateTime
.plusDays(1)
.toString("yyyy-MM-dd");
}
여기서는 org.joda.time.DateTime 클래스와 plusDays () 메서드를 사용하여 날짜를 하루 씩 증가시킵니다.
위의 코드가 다음 단위 테스트에서 작동하는지 확인할 수 있습니다.
@Test
public void givenDate_whenUsingJodaTime_thenAddOneDay() throws Exception {
String incrementedDate = addOneDayJodaTime("2018-07-03");
assertEquals("2018-07-04", incrementedDate);
}
6. Apache Commons 사용
날짜 조작에 일반적으로 사용되는 또 다른 라이브러리는 Apache Commons입니다. java.util.Calendar 및 java.util.Date 객체 의 사용을 둘러싼 유틸리티 모음입니다 .
작업을 위해 org.apache.commons.lang3.time.DateUtils 클래스와 해당 addDays () 메서드를 사용할 수 있습니다 ( SimpleDateFormat 이 다시 날짜 형식에 사용됨).
public static String addOneDayApacheCommons(String date)
throws ParseException {
SimpleDateFormat sdf
= new SimpleDateFormat("yyyy-MM-dd");
Date incrementedDate = DateUtils
.addDays(sdf.parse(date), 1);
return sdf.format(incrementedDate);
}
평소처럼 단위 테스트를 통해 결과를 확인합니다.
@Test
public void givenDate_whenUsingApacheCommons_thenAddOneDay()
throws Exception {
String incrementedDate = addOneDayApacheCommons(
"2018-07-03");
assertEquals("2018-07-04", incrementedDate);
}
7. 결론
이 빠른 기사에서는 날짜를 하루 씩 증가시키는 간단한 작업을 처리하는 다양한 접근 방식을 살펴 보았습니다. Java의 핵심 API와 일부 인기있는 타사 라이브러리를 사용하여이를 수행하는 방법을 보여주었습니다.
이 기사에 사용 된 코드 샘플 은 GitHub 에서 찾을 수 있습니다 .
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/java-increment-date
'Java' 카테고리의 다른 글
Java의 배열에서 요소 제거 (0) | 2021.03.26 |
---|---|
Java에서 Null 문 확인 방지 (0) | 2021.03.26 |
Java에서 경과 시간 측정 (0) | 2021.03.26 |
Java에서 분리 자로 원시 배열 결합 (0) | 2021.03.25 |
Apache Commons Lang 3을 사용한 문자열 처리 (0) | 2021.03.25 |