IT/Javascript

js 한국 시간 적용(OS, MYSQL 시간대 확인하는 방법)

1am_wish 2023. 3. 23. 00:33
728x90
반응형

Node.js 에서 DB에 현재 시간으로 업데이트하는 작업을 하는 도중에, 시간이 한국시간이 아닌 9시간 늦게 삽입되는 것을 확인하였다.

위 사진은 DB에 삽입된 시간이고, 실제 작업 시간은 2023-03-23 00:15:44 였다.

한국 시간대로 처리되도록 하기위해 다음 세 가지 과정을 거쳤다.
급하면 3번만 확인해서 적용하면 됨!

 

1. OS 시간 대 확인

터미널에 date를 입력하면 OS에서 안내하는 현재 시간을 알 수 있다. 한국시간과 같았으므로 한국 시간을 사용하는 것을 확인했다.

2. MySQL 시간 대 확인

SELECT NOW()

SELECT @@global.time_zone, @@session.time_zone;

NOW를 사용해서 현재 시간과 비교해도 되고, 
아래 사진처럼 DB가 어느 시간대를 따르는지 확인하는 방법도 있다.

 

 

3. Date 객체 사용 시 9시간 더하여 한국시간으로 맞춰 사용

프로젝트를 작업하는 OS는 한국시간, MySQL도 운영체제를 따라서 한국시간을 사용하고 있다.

const now = new Date();

Node.js에서 현재 시간을 이용할 때 위과 같이 Date 객체를 이용하는데 이는 한국시간이 아니라서 한국시간으로 변환해주어야 한다.

// 방법 1
const now = new Date();
now.setHours(now.getHours() + 9);

// 방법 1
const now = new Date().toLocaleString("ko-KR", {timeZone: "Asia/Seoul"});

 

 

사실 Date 객체로 시간을 생성해서 삽입하는거라 1,2번 절차 무시하고 3번 방법으로 바로 고칠 수 있지만, 혹시 OS나 MySQL시간대도 다를까봐 이번 기회에 확인하는 과정을 가졌다!

728x90
반응형