web/node.js

sequelize에서 timezone 설정 추가

반응형

sequelize를 통해 datetime 필드에 값을 삽입해봤을 때 계속해서 값이 UTC 시간대로 들어가게 되었다.


그래서 해당 블로그(http://ggamu.com/81)에서 제공하는 방식대로 database 자체에 timezone을 서울로 변경하였다.


하지만 그래도 계속해서 값이 UTC로 들어갔고 그래서 혹시 몰라 삽입하는 코드에 new Date('2018-10-18 11:11:11').toLocalString()를 설정해줬다.


하지만 그래도 역시나 ㅜㅜ 

그래서 sequelize 라이브러리 자체에 설정을 하는 부분이 있는지 싶어서 확이해봤는데, 설정 자체에 timezone을 설정하는 부분이 있었다.


그래서 sequelize 객체를 만들때 사용하는 option에 timezone옵션을 부여해줬다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
  "user": "root",
  "password": "test",
  "database": "oauth2",
  "options": {
    "host": "127.0.0.1",
    "dialect": "mysql",
    "timezone": "+09:00",
    "define": {
      "charset": "utf8mb4",
      "dialectOptions": {
        "collate": "utf8mb4_general_ci"
      }
    },
    "pool": {
      "min": 0,
      "max": 10,
      "idle": 10000,
      "acquire": 10000
    }
  }
}
cs


그랬더니 정상적으로 timezone에 맞게 입력되었다.

이런 타임존 문제 때문에 epoch_second를 삽입해서 자주 사용한다. 


바꿔서 진행하던지 해야겠다 ㅜ

반응형