토스 결제 연동 시 날짜가 넘어올 때 ISO 8601 형식인 yyyy-MM-dd'T'HH:mm:ss±hh:mm (ex 2022-01-01T00:00:00+09:00) 으로 넘어오는데 나는 해당 날짜를 yyyyMMddHHmmss 형식으로 DB에 저장을 해야했다.
기존에는 그냥 단순하게 SimpleDateFormat 을 사용하여 구현 하였는데 ISO 8601 형식으로 넘어온 String 데이터를 날짜로 변환하는 것은 두 번 포맷 처리를 해주어야했다.
간만에 Java를 사용하여 개발하다보니 기본적인 것인데 까먹은 나... 반성하자
String requestedAt = "2022-01-01T00:00:00+09:00";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); // 넘어온 값의 형식
SimpleDateFormat df2 = new SimpleDateFormat("yyyyMMddHHmmss"); // 내가 바꿀 형식
// Date에 ISO 8601 형식의 format을 받아 string을 date로 변환
Date date = df.parse(requestedAt);
// Date형식으로 받은 날짜를 내가 원하는 형식으로 다시 변환
requestedAt = df2.format(date);
'JAVA' 카테고리의 다른 글
[JAVA] VO/Map을 JSON String 으로 변경하기(VO to JSON, Map to JSON) (0) | 2022.11.07 |
---|