728x90
반응형
개발을 하다가 시간 패턴을 바꿔야 하는 일이 생겼다. 처음엔 몰라서 이것 저것 찾다가 해결하고 까먹을까봐 적어놓는다.
직면한 문제
DB에서 데이터를 가져왔더니 "2016-02-05 오후 06:42:47" 로 나오더라
하지만 내가 필요한건 "20160205184247" 패턴이다.
사실 좀 더 정확히 말하면 DB에는 "2016-02-05 18:42:47.000" 로 담겨있는데
쿼리에서 SELECT replace(replace(to_char(write_dt, 'yyyy-mm-dd am hh:mi:ss'), 'am', '오전'), 'pm', '오후') write_dt,
로 가져온다. 쿼리를 바꾸면 되지 않느냐고 할 수 있지만 그럴 수가 없는 상황이었다.
이미 개발되어 있는 API의 기능을 가져다 쓰는 경우였기 때문이다.
때문에 나는 코드상에서 패턴을 바꿔주어야 했다.
방법
1. String 을 Date 타입으로 변환하기
2. Date 를 내가 원하는 패턴의 String으로 바꾸기
1. String 을 Date 타입으로 변환하기
String strDate = "2016-02-05 오후 06:42:47"
// yyyy-MM-dd a hh:mm:ss 패턴으로 되어있는 String을
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd a hh:mm:ss");
// Date 타입으로 변환한다.
Date date = formatter.parse(strDate);
a 는 오전, 오후를 나타낸다.
2. Date 를 내가 원하는 패턴의 String으로 바꾸기
// yyyyMMddHHmmss 패턴을 설정하고
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
// 해당 패턴으로 바꾼다.
String afterDate = data Format.format(date);
참고 사이트
https://hianna.tistory.com/609
https://vicki.tistory.com/1294
https://codechacha.com/ko/java-simple-date-format-and-parsing/
https://stackoverflow.com/questions/70677584/when-hour-12-it-parses-to-00-why
728x90
반응형
'Java' 카테고리의 다른 글
자바 저장 글 (0) | 2024.07.09 |
---|---|
HashMap이 저장되는 형태와 원리, heap, stack 메모리구조 (0) | 2024.06.10 |
에러메세지는 어떤걸 남겨야 할까? (0) | 2023.07.11 |
VO, DTO, Entity (0) | 2022.08.03 |
Java Optional (0) | 2022.07.29 |
댓글