본문 바로가기
프로그래밍/springboot

[Spring boot]String을 LocalDateTime 으로 변환하는 법

by 노잼인간이라불립니다 2022. 7. 22.

예제 데이터

2018-07-04T11:21:35+09:00

api에서 String의 형식으로 위와 같은 데이터를 받아와 LocalDateTime 타입의 변수에 저장해야 할 일이 생겼다.

 

DatetimeFormatter가 제공하는 여러가지 formatter 타입이 있다.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'+09:00'");

ofPattern안에 문자열의 형태로 넣어주면 저게 받는 데이터타입의 포맷이 된다.

 

문자열의 안에 알파벳을 통해 여러가지를 정의 할 수 있다.

  • G  연대 (BC, AD)
  • y/Y  년도
  • M/L  월 (1~12 또는 1월~12월)
  • Q/q  분기(quarter)
  • w  년의 몇 번째 주 (1~53)
  • W  월의 몇 번째 주 (1~5)
  •   년의 몇 번째 일 (1~366)
  •   월의 몇 번째 일 (1~31)
  •   월의 몇 번째 요일 (1~5)
  • E/e   요일
  • a  오전/오후 (AM/PM)
  • H  시간 (0~23)
  • h  시간 (1~12)
  • k  시간 (1~24)
  • K  시간 (0~11)
  • m  분 (0~59)
  • s  초 (0~59)
  • S  1/1000초 (0~999)
  • A  1/1000초 (그 날의 0시 0분 0초 부터의 시간)
  • n  나노초 (0~999999999)
  • N  나노초 (그 날의 0시 0분 0초 부터의 시간)
  • V  시간대 ID(VV)
  • z  시간대(Time zone) 이름
  • O  지역화된 zone-offset
  • Z  zone-offset
  • X/x  zone-offset(Z는 +00:00를 의미)
  •   escape 문자 (특수문자를 표현하는 데 사용)

종류는 위와 같다.

 

이외로 ZonedDateTime과 같은 타입도 존재한다.

 

그럼 위와 같이 패턴을 정의 했다면 다음은 간단하다.

 

LocalDateTime.parse(getOrderDate(),formatter)

LocalDateTime.parse(변환할 String, 규칙을 정한 formatter)

 

이런식으로 넣어주면 정상적으로 LocalDateTime 형식으로 바뀌게 된다.

 

 

참고자료

https://dico.me/java/articles/93/ko