카테고리 없음

[Unix] 특정 프로세스의 표준 시간대 변경

노새두마리 2024. 7. 21. 19:26

목적

시스템의 표준 시간대 설정을 변경하지 않고 특정 표준 시간대를 적용하여 프로세스를 실행합니다.


표준 시간대 변경이 필요한 경우

  • 배포 환경의 시스템 표준 시간대는 UTC이고 현재 작업중인 시스템의 표준 시간대는 Asia/Seoul(UTC+9)인 상태에서 배포 환경을 기준으로 로컬 환경의 프로그램을 동작해 보고 싶은 경우

일반적인 방법

시스템 설정 - 시간 및 언어 관련 메뉴에 진입하여 시스템 자체의 표준 시간대를 변경합니다.


표준 시간대의 임시 변경 방법

# TZ=UTC
TZ=<timezone-string> <command>

간단하게 확인해 봅시다. 표준 시간대 변경 부분이 command 앞에 와야 합니다.


한 줄짜리 프로그램을 작성하였습니다. UTC와 현재 적용되는 표준 시간대의 차이를 출력하는 함수입니다.

// index.js
console.log(new Date().getTimezoneOffset());

프로그램을 실행합니다.

node index.js

# -540

현재 한국 표준 시간대가 적용되어 시간대 오프셋은 -540(분)이 됩니다.


위의 커맨드에 타임존 할당 부분을 추가하여 다시 프로그램을 실행합니다.

TZ=UTC node index.js

# 0

UTC가 적용되어 오프셋은 0(분)이 됩니다.


Unix 기반 운영체제에서만 지원되는 방법으로, windows powershell로는 해당 방법을 이용할 수 없습니다.

 

timezone string 목록 - https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)