컴퓨터

타임존(time zone) 맞추기

sayyesdoit 2019. 6. 11. 09:08

[기본 개념]

타임존은 세가지를 맞춰줘야 한다. 한국 시간대로 맞추는 것 보다는 UTC 시간대로 맞추는 것이 좋다.

1. OS - Ubuntu

2. 서버 - NodeJS

3. 데이터베이스 - MySQL


[Ubuntu 타임존 확인]

~$ date

[Ubuntu 타임존 한국 시간대로 변경]

~$ timedatectl set-timezone Asia/Seoul

[Ubuntu 타임존 UTC 시간대로 변경]

~$ timedatectl set-timezone Etc/UTC

[NodeJS 타임존 KST로 변경]

let OBJt = new Date();
OBJt.setHours(OBJt.getHours()+9);
console.log(OBJt);
let STRt = OBJt.toString();
console.log(STRt);

NodeJS의 new Date()는 OS와 무관하게 UTC 시간을 반환한다. 그래서 KST를 얻고 싶으면 9시간을 더해준다. 변환한 것을 고정하기 위해서는 문자열로 바꿔버린다.


[MySQL 타임존 확인]

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

기본설정인 "SYSTEM"으로 설정돼있다. 이는 OS설정에 따른다는 뜻이다.


[OS와 상관 없이 MySQL 타임존 한국 시간대로 변경]

/etc/mysql# vi my.cnf

my.cnf 마지막줄에 아래 내용을 추가한다.

[mysqld]
default-time-zone="+9:00"

MySQL을 재부팅한다.

/etc/mysql# service mysqld restart

 


[OS와 상관 없이 MySQL 타임존 UTC 시간대로 변경]

/etc/mysql# vi my.cnf

my.cnf 마지막줄에 아래 내용을 추가한다.

[mysqld]
default-time-zone="+0:00"

MySQL을 재부팅한다.

/etc/mysql# service mysqld restart

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

console.log(nDate);