mybatis + egovmap 사용시 date 컬럼의 timezone 설정 문의
- 작성자 :
- 홍*준
- 작성일 :
- 2021-01-19 12:42:09
- 조회수 :
- 3,845
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요.
전자정부프레임워크를 사용하여 프로그램 개발중 EgovMap을 이용하여 DB의 date column을 가져올 때, Timezone과 관련한 궁금증이 생겨 질문드립니다.
현재 모든 데이터는 UTC를 기준으로 저장되어 있으며, 해당 시간정보를 가져와 화면에 표출할 경우 실제 저장 데이터와, 화면 표출 데이터간의 차가 존재합니다.
해당부분 확인을 위해 Logger로 데이터를 출력해 봤을 때, UTC 기준으로 출력하면 DB에 저장된 시간이 그대로 표출되나, Timezone이 KST로 설정되어 있습니다.
ex)
DB 저장 : 09시 00분, UTC
Map 데이터 : 09시 00분, KST
-> 화면 표출시 UTC 시간 출력 시 00시 00분
--------------------
위와 같은 문제 해결을 위해 mapper에서 사용하는 기본 timezone 설정을 변경 가능한지 궁금합니다.
전자정부프레임워크를 사용하여 프로그램 개발중 EgovMap을 이용하여 DB의 date column을 가져올 때, Timezone과 관련한 궁금증이 생겨 질문드립니다.
현재 모든 데이터는 UTC를 기준으로 저장되어 있으며, 해당 시간정보를 가져와 화면에 표출할 경우 실제 저장 데이터와, 화면 표출 데이터간의 차가 존재합니다.
해당부분 확인을 위해 Logger로 데이터를 출력해 봤을 때, UTC 기준으로 출력하면 DB에 저장된 시간이 그대로 표출되나, Timezone이 KST로 설정되어 있습니다.
ex)
DB 저장 : 09시 00분, UTC
Map 데이터 : 09시 00분, KST
-> 화면 표출시 UTC 시간 출력 시 00시 00분
--------------------
위와 같은 문제 해결을 위해 mapper에서 사용하는 기본 timezone 설정을 변경 가능한지 궁금합니다.
A
안녕하세요.
표준프레임워크센터 입니다.
기재하신 내용으로 볼때
근본적인 원인은
java.sql.Date => java.util.Date로의 컨버팅시에
TimeZone이 지원되지 않아서 발생하는 것으로 보입니다.
mybatis에서의 설정을 확인해 보려 하였으나
자료를 찾지는 못했습니다.
사실 mybatis문제 보다는
Java의 기본 Date유틸이 시스템 타임존을 기본으로 하여
이러한 한계로 인해 발생하는게 아닌가 예상됩니다.
현재로서 가장 좋은 방법은 DB서버와 WAS간의
타임존을 일치시키는게 가장 쉬운 방법을 듯합니다.
감사합니다.
표준프레임워크센터 입니다.
기재하신 내용으로 볼때
근본적인 원인은
java.sql.Date => java.util.Date로의 컨버팅시에
TimeZone이 지원되지 않아서 발생하는 것으로 보입니다.
mybatis에서의 설정을 확인해 보려 하였으나
자료를 찾지는 못했습니다.
사실 mybatis문제 보다는
Java의 기본 Date유틸이 시스템 타임존을 기본으로 하여
이러한 한계로 인해 발생하는게 아닌가 예상됩니다.
현재로서 가장 좋은 방법은 DB서버와 WAS간의
타임존을 일치시키는게 가장 쉬운 방법을 듯합니다.
감사합니다.