시간대를 UTC-8로 설정하는 방법

시간대를 UTC-8로 설정하는 방법

시간대를 UTC -8로 설정해야 하는데 PST 또는 GMT-8로 설정하는 옵션만 표시됩니다. UTC-8로 표시되도록 하는 방법이 있나요?

RHEL6을 실행 중입니다.

$ 날짜 2019년 2월 23일 토요일 01:41:41 UTC

답변1

이 시간대를 설정할 위치를 명시하지 않았지만 TZ환경 변수에서 원하는 대로 영역 이름을 만들 수 있습니다.

$ TZ='<UTC-8>+8' date
Fri Feb 22 19:25:36 UTC-8 2019

이는 +8POSIX가 어리석게도오프셋을 거꾸로 요청(서쪽으로 증가); <...>는 표시되는 이름이며 임의의 단일 단어일 수 있습니다. 순전히 알파벳순인 경우에는 꺾쇠 괄호가 필요하지 않지만 꺾쇠 괄호는 -필요합니다 .8

$ TZ='<yesterday>24' date
Fri Feb 22 03:30:15 yesterday 2019
$ TZ='tomorrow-24' date
Sun Feb 24 03:30:26 tomorrow 2019

/usr/share/zoneinfoGUI 또는 기타 구역 선택 도구를 사용하는 경우 시스템에 포함된 구역 정의를 찾을 수 있습니다 . 이 목록에 다른 영역을 표시하려면 적절한 영역 정보 파일을 생성하고 해당 위치에 복사해야 합니다. 이것ziczoneinfo 파일 컴파일 도구텍스트 형식, 비교적 간단합니다(특히 이름을 변경하기 위해 기존 영역만 수정하는 경우).

/etc/timezone일부 시스템(내 생각에는 Red Hat은 아님)에는 시간대를 전역적으로 TZ해당 변수 형식을 사용할 수 있는 이름으로 설정하는 파일이 있습니다 . 다른 시스템에서는 /etc/localtime일반적으로 zoneinfo 파일 중 하나의 복사본인 이 파일을 사용하므로 여기에도 적합한 파일을 만들어야 합니다.

사용자별 또는 세션 영역의 경우 환경 변수만 사용할 수 있습니다.


UTC-8영역을 " " 또는 정의되지 않은 다른 영역 으로 설정하면두 가지로 보여요: 먼저 영역 이름("UTC": 존재하는 모든 알파벳 문자열), 두 번째는 POSIX 방향의 오프셋(존재하는 숫자 문자열)입니다. 즉, TZ=UTC-8 date출력은 다음과 같습니다.

Sat Feb 23 11:50:01 UTC 2019

- 즉, 중국이나 서호주의 시간을 보고하고 생각한다.해당 영역은 "UTC"라고 합니다.. 실수를 했을 때 이런 행동은 매우 혼란스럽고 짜증스럽습니다. 이것이 귀하의 질문에 포함된 결과의 이유일 수 있지만 알 수는 없습니다.

RST6RDT5,M10.3.0/00:00:00,M2.4.0/00:00:00이는 표준 시간과 일광 절약 시간에 대한 선택적 이름과 오프셋, 둘 사이의 변환 날짜를 포함하는 기존의 거의 사용되지 않는 POSIX 시간대 형식으로 구문 분석됩니다 . 다른 중요한 영역과 마찬가지로 이 접근 방식에는 여러 가지 단점이 있으며 영역 파일처럼 정의에 대한 기록 변경 사항을 추적하지 않습니다.


"올바른" 방법은 America/Los_Angeles 지역(PST로 표시) 또는 Etc/GMT+8(해당 이름을 사용할 수 없거나 일광 절약 시간제 변경을 원하지 않는 경우)을 사용하는 것입니다. GMT+8은 오프셋을 텍스트 레이블 없이 "-08"로 표시합니다. 때로는 소위 옳은 것만으로는 충분하지 않을 수 있으며, 이 경우 위의 방법 중 하나가 좋을 것입니다.

관련 정보