IT감각

[java] SimpleDateFormat simpleDate = new SimpleDateFormat("yyyyMMddHHmmss") ("yyyy-MM-dd HH:mm:ss") 차이점 용도 구별 활용

dobioi 2023. 5. 18. 14:21
반응형

좀 헷갈리는 것이 DATE 타입이다.

보통 DATE 타입이라면 날짜만 들어가는 것 같지만 일시분초도 함께 들어가있다.

그래서 일시라고 표현한다.

 

데이터베이스 툴을 사용하다 보면 조회되는 결과에 일시가 표시된다.

 

2023-05-18 13:15:69.000

 

그런데, 입력받는 형식에 따라서 모양새가 좀 바뀔 수도 있다. 그러면 그걸 적절히 변환해서 비교해야 제대로 비교할 수 있게 된다.

 

그래서 한번 해봤더니, 삽질 몇 번 하고 나서 원하는 결과를 얻을 수 있었다.

 

먼저 DB에 있는 값과 입력받은 값의 형식을 파악해야 한다. DB는 위에 표기된 대로 2023-05-18 13:15:69.000 이렇게 되어 있다. 하지만 입력받은 값은 20230518131569000 으로 되어 있다.

 

이걸 단순히 STRING으로 비교하면 서로 다르다고 에러를 뱉어내게 된다. 그래서 사용하게 되는 것이 SimpleDateFormat 이다.

 

SimpleDateFormat simpleDate1 = new SimpleDateFormat("yyyyMMddHHmmss");
// 20230518131569000

SimpleDateFormat simpleDate2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 2023-05-18 13:15:69.000

 

728x90

이렇게 되면 다른 포멧을 날짜를 같이 비교할 수 있다.

 

Date date1 = simpleDate1.parse("20230518131569000");
Date date1 = simpleDate2.parse("2023-05-18 13:15:69.000");

if (date1.compareTo(date2) != 0) errCnt++;

 

만약 다르면 errCnt 를 +1 해줘라 고 해봤다.

 

왜 매번 삽질을 해야하는지 궁금하지만, 시간이 걸리더라도 몇번 해보면서 삽질로나마 찾아가는 것을 재미로 느끼기로 했다.

 

300x250