LocalDateTime - 날짜 및 시간을 다루는 클래스

프로젝트 도중 저는 현재 시간과 현재시간 + 5분비교하는 java 코드를 작성하고자 했습니다.

그러기 위해서는 java에서 현재 시간을 나타내는 클래스가 있어야 하는데..

구글링을 통해 찾던 도중 제가 원하는 것을 찾았습니다!

 


1. LocalDateTime

LocalDateTimeJava 8에서 도입된 날짜와 시간을 다루기 위한 클래스입니다.

이 클래스는 시간대 정보를 포함하지 않는 날짜와 시간을 표현해요. 즉, 다른 특정 지역의 시간으로 변환할 필요가 없다는 뜻이죠.

또한, LocalDateTime불변성입니다. 즉, 한 번 생성된 객체는 변경할 수 없고, 변경이 필요할 경우, 새로운 객체를 생성해야 해요.

그리고 날짜와 시간을 쉽게 조작할 수 있는 다양한 메서드를 제공합니다. 예를 들어, 날짜 추가, 감소, 비교 등이 가능해요.

 


2. 사용방법

그러면 바로 사용해 봐야겠죠!

현재 날짜 및 시간을 표현하는 방법은 다음과 같습니다.

LocalDateTime now = LocalDateTIme.now();
System.out.println("현재 날짜 및 시간: " + now);

이렇게 하면 현재 날짜 및 시간을 나타낼 수 있어요.

 

그러면 제가 하고 싶었던, 시간 비교를 구현해 봅시다.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class LocalDateTimeTest {
    public static void main(String[] args) {
        String reqhh = "202409261537";
        
        // DateTimeFormatter 생성
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmm");
        
        // 문자열을 LocalDateTime으로 변환
        LocalDateTime reqTime = LocalDateTime.parse(reqhh, formatter);
        
        // 5분 추가
        LocalDateTime newTime = reqTime.plusMinutes(5);
        
        // 현재 시간 가져오기
        LocalDateTime currentTime = LocalDateTime.now();
        
        // 시간 비교
        if (newTime.isAfter(currentTime)) {
            System.out.println("입력한 시간 + 5분은 현재 시간보다 같거나 큽니다.");
        }
        
        // 형식 지정
        String formattedTime = newTime.format(formatter);
        System.out.println("입력한 시간 + 5분: " + formattedTime);
    }
}

이렇게 하면 현재시간 + 5분현재시간보다 클 때, "입력한 시간 + 5분은 현재 시간보다 같거나 큽니다."라고 나타나게 됩니다.

여기서 DateTimeFormatter날짜와 시간을 포맷팅하고 파싱하는 데 사용되는 클래스입니다.

날짜와 시간을 제가 원하는 형식의 문자열로 변환할 수 있는 것이지요.

 


3. 정리하며

지금까지 LocalDateTime에 대해 알아보았습니다.

이를 통해 시간을 활용한 기능을 사용할 수 있을 것 같아요.

 

참고

convenant 님의 완벽정리! LocalDateTime을 살펴보자

java119 님의 [Java] LocalDate,LocalTime,LocalDateTime 총 정리

김용환 님의 [Java][time] DateTimeFormatter 클래스의 파싱과 포맷