포스트

Java - LocalDateTime 자료형 다뤄보기

출처 docs

LocalDateTime 자료형 이용해보기

현재 시간 구하기


1
2
3
4
LocalDateTime time = LocalDateTime.now();
System.out.println("현재 날짜와 시간: " + time);

//현재 날짜와 시간: 2024-07-19T13:08:16.596698

시간 만들기


1
2
3
4
LocalDateTime dateTime = LocalDateTime.of(2024, 7, 19, 10, 30);
System.out.println("설정한 날짜와 시간: " + dateTime);

//설정한 날짜와 시간: 2024-07-19T10:30

시간 덧셈, 뺄샘


1
2
3
4
5
6
7
8
9
10
LocalDateTime future = time.plusDays(10).plusHours(5);
LocalDateTime past = time.minusMonths(2).minusMinutes(15);

System.out.println("현재 날짜와 시간: " + time);
System.out.println("10일 5시간 후: " + future);
System.out.println("2개월 15분 전: " + past);

//현재 날짜와 시간: 2024-07-19T13:08:16.596698
//10일 5시간 후: 2024-07-29T18:08:16.596698
//2개월 15분 전: 2024-05-19T12:53:16.596698

오늘의 시작 시간 / 끝 시간 구하기


1
2
3
4
5
6
7
LocalDateTime startDay = time.with(LocalTime.MIN);
LocalDateTime endtDay = time.with(LocalTime.MAX);
System.out.println("오늘의 시작 시간: " + startDay);
System.out.println("오늘의 끝 시간: " + endtDay);

//오늘의 시작 시간: 2024-07-19T00:00
//오늘의 끝 시간: 2024-07-19T23:59:59.999999999

시작날짜 값과 끝 날짜 값을 받아서 활용할 때


다음과 같은 날짜 input 태그를 사용하여 데이터를 가져오고 싶을 때

1
2
<input type="date" id="startDate">
<input type="date" id="endDate">

일반적으로 데이터를 조회할때 시작날짜와 끝날짜를 클릭해서 조회하게 되는데 17일과 19일을 클릭해서 조회할경우 17일 00시 부터의 데이터와 19일 23:59:59시 까지의 데이터를 가져와야한다.

input 태그로 부터 가져온 날짜는 00시로 되어있기 때문에 끝 날짜를 수정해주지 않으면 17일 00시 ~ 19일 00시 범위가 되어버려서 19일 데이터는 가져오지 못한다.

해결방법 : endDate의 시간을 23:59:59시로 변경해주는 작업이 필요하다.

1
2
3
4
5
6
7
LocalDateTime startDate = LocalDateTime.of(2024, 7, 17, 0, 0); // 날짜 가데이터 생성
LocalDateTime endDate = LocalDateTime.of(2024, 7, 19, 0, 0); 

endDate = endDate.with(LocalTime.MAX)
System.out.println("시간 수정: " + endtDay);

//시간 수정: 2024-07-19T23:59:59.999999999
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.