LocalDateTime 값 변경 방법
이번 포스팅은 LocalDateTime의 값(날짜 및 시간)을 변경하는 방법을 소개합니다.
이번 포스팅에서 소개하는 메서드를 사용하면, LocalDateTime 객체뿐만 아니라 LocalDate, LocalTime 객체의 값을 변경할 수 있습니다.
날짜 변경 방법
LocalDateTime, LocalDate 객체의 날짜(년 / 월 / 일)를 변경하는 방법입니다.
withYear()
- LocalDateTime 또는 LocalDate 객체의 연도(year)가 변경된 결과를 반환합니다.
withMonth()
- LocalDateTime 또는 LocalDate 객체의 개월(month)이 변경된 결과를 반환합니다.
withDayOfMonth()
- LocalDateTime 또는 LocalDate 객체에 설정된 개월의 일(day)이 변경된 결과를 반환합니다.
- 현재 날짜가 2022년 8월 13일인 경우 withDayofMonth() 메서드는 "2022년 8월의 몇 일로 설정할 것인지?"를 의미합니다.
withDayOfYear()
- LocalDateTime 또는 LocalDate 객체에 설정된 년도에서 일(day)이 변경된 결과를 반환합니다.
- 현재 날짜가 2022년 8월 13일인 경우 withDayYear() 메서드는 "2022년의 몇 일로 설정할 것인지?"를 의미합니다.
public static void main(String args[]) {
LocalDate todayLocalDate = LocalDate.now();
System.out.println("현재 날짜: " + todayLocalDate);
LocalDate withYearResult = todayLocalDate.withYear(2000);
System.out.println("todayLocalDate.withYear(2000): " + withYearResult);
LocalDate withMonthResult = todayLocalDate.withMonth(12);
System.out.println("todayLocalDate.withMonth(12): " + withMonthResult);
LocalDate withDayOfMonthResult = todayLocalDate.withDayOfMonth(2);
System.out.println("todayLocalDate.withDayOfMonth(2): " + withDayOfMonthResult);
LocalDate withDayOfYearResult = todayLocalDate.withDayOfYear(2);
System.out.println("todayLocalDate.withDayOfYear(2): " + withDayOfYearResult);
}
[실행 결과]
현재 날짜: 2022-08-13
todayLocalDate.withYear(2000): 2000-08-13
todayLocalDate.withMonth(12): 2022-12-13
todayLocalDate.withDayOfMonth(2): 2022-08-02
todayLocalDate.withDayOfYear(2): 2022-01-02
만약, 다음과 같이 범위를 벗어나는 경우 DateTimeException이 발생합니다.
- withMonth() 메서드에 전달된 값이 1~12를 벗어나는 경우 에러가 발생합니다.
- 2022년 8월은 31일까지 존재합니다. 따라서, 31을 초과하는 값을 withOfMonth() 메서드에 전달하면 에러가 발생합니다.
다음 예제는 withMonth() 메서드에 15를 전달합니다.
public static void main(String args[]) {
LocalDate todayLocalDate = LocalDate.now();
System.out.println("현재 날짜: " + todayLocalDate);
LocalDate withYearResult = todayLocalDate.withMonth(15);
System.out.println("15월로 변경된 결과: " + withYearResult);
}
[에러 내용]
시간 변경 방법
LocalDateTime, LocalTime 객체의 시간(시 / 분 / 초 / 나노초)을 변경하는 방법입니다.
withHour()
- LocalDateTime 또는 LocalTime 객체의 시간(hour)이 변경된 결과를 반환합니다.
withMinute()
- LocalDateTime 또는 LocalTime 객체의 분(minute)이 변경된 결과를 반환합니다.
withSecond()
- LocalDateTime 또는 LocalTime 객체의 초(second)가 변경된 결과를 반환합니다.
withNano()
- LocalDateTime 또는 LocalTime 객체의 나노초(nanosecond)가 변경된 결과를 반환합니다.
public static void main(String args[]) {
LocalTime todayLocalTime = LocalTime.now();
System.out.println("현재 시간: " + todayLocalTime);
LocalTime withHourResult = todayLocalTime.withHour(10);
System.out.println("todayLocalTime.withHour(10): " + withHourResult);
LocalTime withMinuteResult = todayLocalTime.withMinute(45);
System.out.println("todayLocalTime.withMinute(45): " + withMinuteResult);
LocalTime withSecondResult = todayLocalTime.withSecond(25);
System.out.println("todayLocalTime.withSecond(25): " + withSecondResult);
LocalTime withNanoResult = todayLocalTime.withNano(450000);
System.out.println("todayLocalTime.withNano(450000): " + withNanoResult);
}
[실행 결과]
현재 시간: 16:58:16.198
todayLocalTime.withHour(10): 10:58:16.198
todayLocalTime.withMinute(45): 16:45:16.198
todayLocalTime.withSecond(25): 16:58:25.198
todayLocalTime.withNano(450000): 16:58:16.000450
'Java' 카테고리의 다른 글
[Java]난수 생성 방법 (0) | 2022.08.31 |
---|---|
[Java]소수점 반올림하는 방법 (0) | 2022.08.16 |
[Java]시간 더하기 및 빼기(LocalTime 더하기 및 빼기) (0) | 2022.08.13 |
[Java]날짜 더하기 및 빼기(LocalDate 더하기 및 빼기) (0) | 2022.08.13 |
[Java]LocalTime 비교 방법(시간 비교 방법) (0) | 2022.08.12 |
댓글