본문 바로가기
쿤즈 Dev/Java

[Java] LocalDateTime 값을 String 포멧으로 변환하는 방법

by :)Koon 2022. 3. 16.

Spring Boot를 사용하여 웹 애플리케이션을 만들다 보면 마주하는 데이터 타입이 LocaDateTime입니다. 로그나 액션을 취한 시간을 DB에 기록해야 할 필요성이 있기 때문이죠. 그대로 저장하고 그대로 사용하면 좋겠지만 또 변환을 해야 할 필요성이 있는 경우도 많습니다.

이번 포스팅에서는 LocalDateTime 값을 String 포멧으로 변환하는 방법을 알아볼게요.


LocalDateTime 클래스

Java8 에서 등장한 클래스가 LocaDateTime입니다. 이 클래스는 타임존의 개념이 필요 없는 날짜와 시간에 대한 정보를 저장하고 나타내기 위해서 사용하는 클래스입니다. 그래서 Dto를 이용해서 브라우저에서 서버로 시간을 넘겨주거나 Database에 저장하기 위해 Entity를 만들 때 주로 많이 사용하는 데이터 타입입니다.

 

이 클래스에는 시간에 관련된 여러가지 메서드들이 있습니다. 그중에서도 이번 포스팅에서는 포맷을 변환하는 메서드를 알아보겠습니다.


포맷을 변환하는 메서드 format(DateTimeFormatter formatter)

LocalDateTime을 String 포맷으로 변환하는 메서드입니다.

String format(DateTimeFormatter formatter)

리턴 타입은 String 포맷이며 Parameter로는 DateTimeFormatter 클래스를 입력받습니다. 관련 클래스 정보는 문서에서 확인할 수 있습니다.

https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

변경할 패턴정보로 입력해줄 수도 있고, 임의의 패턴을 만들어서 입력해줄 수도 있습니다. 저는 원하는 패턴으로 바꾸기 위해서 임의의 패턴으로 변경해볼게요.

@Test
public void changeTimeFormat() throws Exception
{
    //given
    LocalDateTime now = LocalDateTime.now();

    //when
    String myDateFormat = now.format(DateTimeFormatter.ofPattern("yyyyMMddhhmmss"));

    //then
    System.out.println(myDateFormat); //20220316020116
}

현재시간을 원하는 String 포멧의 패턴으로 변경해서 출력해 보았습니다. 입력한 패턴인 "yyyyMMddhhmmss"인 패턴 그대로 출력이 되는 것을 확인하실 수 있으실 거예요.


프로그래밍을 하다 보면 형태를 변경해야 할 일이 많은 것 같습니다. 메서드를 직접 구현해서 사용하는 것도 좋은 방법이고 사용할 수 있는 클래스의 메서드를 가져와서 사용하는것도 하나의 방법입니다. 많은 기능들이 이미 구현되어 있을 테니 말이죠. 도움이 되셨으면 합니다. 이상입니다.

댓글