Java - LocalDate, LocalDateTime 시간 날짜 변경

LocalDate와 LocalDateTime는 날짜, 시간 정보를 갖고 있는데, 이 객체의 시간 또는 날짜를 변경하는 방법을 소개합니다.

1. LocalDate의 날짜 변경

LocalDate는 날짜 정보를 갖고 있는데, 다음과 같은 메소드로 년, 월, 일을 변경할 수 있습니다.

  • withYear() : 년 변경
  • withMonth() : 월 변경
  • withDayOfMonth() : 일 변경

아래와 같이 날짜를 변경할 수 있습니다. 동시에 년, 월, 일을 변경하려면 withYear(2020).withMonth(1).withDayOfMonth(10)처럼 구현하시면 됩니다. 참고로, LocalDate.now()는 현재 시간에 대한 LocalDate 객체를 리턴합니다.

import java.time.LocalDate;

public class Example {

    public static void main(String[] args) {

        LocalDate date = LocalDate.now();
        System.out.println("date: " + date);

        System.out.println("date.withYear(2020): " + date.withYear(2020));
        System.out.println("date.withMonth(1): " + date.withMonth(1));
        System.out.println("date.withDayOfMonth(10): " + date.withDayOfMonth(10));

        System.out.println("newDate: " + date.withYear(2020).withMonth(1).withDayOfMonth(10));
    }
}

Output:

date: 2022-08-20
date.withYear(2020): 2020-08-20
date.withMonth(1): 2022-01-20
date.withDayOfMonth(10): 2022-08-10
newDate: 2020-01-10

2. LocalDateTime의 날짜 변경

LocalDateTime는 날짜와 시간 정보를 모두 갖고 있는 클래스입니다. LocalDateTime도 LocalDate과 동일한 메소드로 년, 월, 일을 변경할 수 있습니다.

import java.time.LocalDateTime;

public class Example {

    public static void main(String[] args) {

        LocalDateTime date = LocalDateTime.now();
        System.out.println("date: " + date);

        System.out.println("date.withYear(2020): " + date.withYear(2020));
        System.out.println("date.withMonth(1): " + date.withMonth(1));
        System.out.println("date.withDayOfMonth(10): " + date.withDayOfMonth(10));

        System.out.println("newDate: " + date.withYear(2020).withMonth(1).withDayOfMonth(10));
    }
}

Output:

date: 2022-08-20T07:59:05.556532619
date.withYear(2020): 2020-08-20T07:59:05.556532619
date.withMonth(1): 2022-01-20T07:59:05.556532619
date.withDayOfMonth(10): 2022-08-10T07:59:05.556532619
newDate: 2020-01-10T07:59:05.556532619

3. LocalDateTime의 시간 변경

LocalDateTime은 다음과 같은 메소드로 시간 정보를 변경할 수 있습니다.

  • withHour() : 시간 변경
  • withMinute() : 분 변경
  • withSecond() : 초 변경
import java.time.LocalDateTime;

public class Example {

    public static void main(String[] args) {

        LocalDateTime date = LocalDateTime.now();
        System.out.println("date: " + date);

        System.out.println("date.withHour(10): " + date.withHour(10));
        System.out.println("date.withMinute(20): " + date.withMinute(20));
        System.out.println("date.withSecond(30): " + date.withSecond(30));

        System.out.println("newDate: " + date.withHour(10).withMinute(20).withSecond(30));
    }
}

Output:

date: 2022-08-20T08:00:14.941212678
date.withHour(10): 2022-08-20T10:00:14.941212678
date.withMinute(20): 2022-08-20T08:20:14.941212678
date.withSecond(30): 2022-08-20T08:00:30.941212678
newDate: 2022-08-20T10:20:30.941212678
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha