IT/Node.js
Node.js Sequelize 한국 시간대 적용 Asia/Seoul
1am_wish
2023. 3. 23. 01:19
728x90
반응형
이전 게시물에서 JS 시간대를 바꾸는 방법을 써봤을 때, console.log를 하면 한국 현재 시간으로 나왔다.
근데 그렇게 한국시간으로 적용된 값을 삽입해도 DB에는 9시간 전으로 삽입이됐다 ㅜㅜ
OS, MySQL, Node.js 모두 시간대를 맞춰도 이상해서 .. 마지막 원인은 DB를 사용하기 위한 모듈인 Sequelize 에게 있을 것이라고 추측했다 ㅜ 역시나 관련해서 찾아본 결과 Sequelize 기본 시간대가 utc라는 레퍼런스를 확인했다..
Sequelize timezone를 한국 시간으로 바꾸기 위해 Sequelize 선언부에 없었던의 타임존 시간을 바꿔주었다.
// sequelize 선언부(mysql 연결 객체)에 없었던 timezone 설정을 추가하였다.
const sequelize = new _sequelize(
_config.get('mysql_local.database'),
_config.get('mysql_local.username'),
_config.get('mysql_local.password'),
{
host: _config.get('mysql_local.host'),
dialect: _config.get('mysql_local.dialect'),
logging: _config.get('server.state') === 'production' ? false : console.log,
timezone: _config.get('mysql_local.timezone'), // 기존에 없었던 줄
},
);
// config 부분
"mysql_local": {
"host": "localhost",
"username": "root",
"password": "1111",
"database": "test",
"dialect": "mysql",
"timezone": "Asia/Seoul"
},
이제 진짜 해결 ! 인코딩, 시간대 이런부분은 항상 까다롭다 ㅜㅜ
728x90
반응형