문제(1)
sequelize로 데이터를 create할때, 자동으로 생성되는 createdAt과 updatedAt의 시간이 UTC기준으로 저장된다.
해결
models > index.js에 timezone설정에 'Asia/Seoul'을 추가했다. 그 결과, 데이터베이스에 한국시간으로 저장되었다.
sequelize = new Sequelize(config.database, config.username, config.password, {
host: config.host,
port: config.port,
dialect: config.dialect,
timezone: "Asia/Seoul", //이 부분을 추가함.
});
문제(2)
데이터베이스에는 한국시간으로 잘 저장되었지만, findAll등으로 데이터를 조회할때, 다시 -9시간된 상태(타임존 적용 전 상태)로 불러왔다.
해결
로드할때, 날짜를 String 형태로 받아와서, timezone을 -9시간 할 수 없도록 한다.
sequelize = new Sequelize(config.database, config.username, config.password, {
host: config.host,
port: config.port,
dialect: config.dialect,
timezone: "Asia/Seoul",
dialectOptions: {
charset: "utf8mb4",
dateStrings: true,
typeCast: true,
},
});
reference