TZSET(3)

명칭
tzset, tzsetwall - 시간 변환 정보의 초기화

프로그램 라이브러리
libc

서식
<time.h> void tzset(void) void tzsetwall(void)

해설
tzset() 함수는, 프로그램 라이브러리 routine localtime(3) 에 의해 사용된다 시간 변환 정보를 초기화합니다. 환경 변수 TZ (은)는, 이 변환을 어떻게 실시하는지를 지정합니다.

환경에 TZ 하지만 나타나지 않은 경우는, tzfile(5) 형식의 파일 /etc/localtime 에 의해 지정된 로컬벽시계 시간에 가장 가까운 근사치가 이용됩니다.

환경에 TZ 하지만 나타나고 있지만 그 값이 null string인 경우에는, 세계 표준시각 (UTC) 하지만 이용됩니다 (윤초 보정없이 ).

환경에 TZ 하지만 나타나 그 값이 코론 (‘’): 그리고 시작되는 경우는, 그 이후의 값이 tzfile(5) 형식 파일의 패스명으로서 이용되어 거기로부터 시간 변환 정보가 읽어 붐비어집니다. 패스명의 최초의 캐릭터가 slash (‘/’) 인 경우는, 그것은 절대 패스명으로서 이용됩니다. 그 이외의 경우는, 그 패스명은 시스템의 시간 변환 정보 디렉토리에 대한 상대 패스명으로서 이용됩니다.

그 값이 코론으로 시작되지 않는 경우는, 그것은 우선 (위에 설명한 것처럼 ) 시간 변환 정보의 독해용 파일의 패스명으로서 이용됩니다. 그 파일을 읽을 수 없는 경우는, 그 값은 시간 변환 정보의 직접적 사양 (형식은 아래에 설명 )이다고 해석됩니다.

환경 변수 TZ 하지만 tzfile(5) 형식 파일을 지정하고 있지 않고, 직접적 사양과 해석할 수 없는 경우는, UTC 하지만 이용됩니다.

tzsetwall() 함수는, 로컬벽시계 시간에 가장 가까운 근사치를 돌려주도록(듯이) 조정을 실시합니다.

사양 형식 TZ (을)를 시간 변환 정보의 사양으로서 직접 사용하는 경우는, 다음과 같은 문장구조법을 가질 필요가 있습니다 (공백은 읽기 쉽게 하기 위해서 넣어 둡니다 ):

std offset [ dst [offset] [, rule]]

여기서：

std 와 dst
    표준시간대 ( std ) 또는 서머타임대 ( dst )의 지시자인 3 이상의 바이트. 필요한 것은 std 뿐입니다. dst 하지만 없는 경우는, 이 지역에서는 서머타임이 적용되지 않습니다. 대문자와 소문자의 구별은 명시적으로 허가됩니다. 선두의 코론 (‘’):, 소수점, 콤마 (‘’),, 마이너스 (‘-’), 플러스 (‘+’), 및 ASCII NUL 이외의 캐릭터이면 사용할 수 있습니다.

offset
    세계 표준시를 계산하기 위해서 로컬 시간에 가세해야 할 값을 나타냅니다. offset (은)는, 다음과 같은 형식을 가집니다:

    hh[ :mm [:ss]]

    분 (mm) 및 초 (ss) (을)를 붙이는 것은 임의입니다. 시 (은)는 필요해, 1 자리수의 숫자에서도 상관하지 않습니다. std 에 계속된다 offset (은)는 필요합니다. dst 의 후에 offset 하지만 없는 경우는, 서머타임은 표준시간보다 1 시간 진행되는 것으로 간주합니다. 1 자리수 이상의 숫자를 사용할 수 있습니다. 값은 항상 십진수이다고 해석됩니다. 때는 0 에서 24 까지의 사이, 또 분 ( 및 초 )을 지정하는 경우는 0 에서 59 까지의 사이가 아니면 안됩니다. 선두에 (‘-’) 하지만 붙어 있는 경우는, 시간대는 근본 자오선의 동쪽이 됩니다. 그 이외의 경우는, 서쪽이 됩니다 (임의로 선두에 (‘+’) (을)를 붙여 지정해도 상관하지 않습니다 ) .

rule
    언제 서머타임으로 변경하는지, 또 언제 서머타임부터 바탕으로 되돌리는지를 나타냅니다. rule (은)는 다음과 같은 형식을 가집니다:

    date/time, date/time

    여기서, 최초의 date (은)는 표준시간부터 서머타임에의 변경이 언제 일어나는지를 나타내, 2 번째의 date (은)는 언제 바탕으로 되돌리는지를 나타냅니다. 각각의 time 필드는, 현재의 로컬 시간부터 이제(벌써) 한편의 시간에의 변경을 언제 실시하는지를 나타냅니다.

    date 의 형식은, 다음의 머지않아인가입니다:

    J n 유리우스일 n (1 n 365). 윤일은 세지 않습니다. 즉, 윤년을 포함한 모든 해에 2 월 28 일은 59 일째, 3 월 1 일은 60 일째가 됩니다. 가끔 오는 2 월 29 일을 명시적으로 참조할 수 없습니다.

    n   0 을 기준으로 한 유리우스일 (0 n 365 ). 윤일은 셀 수 있어 2 월 29 일을 참조하는 것은 가능합니다.

    M m.n.d
        어느 해의 m 번째의 달의 제 n 주의 d (0 d 6) 번째의 요일 (1 n 5), (1 m 12). 여기서, 제 5 주와는 제 4 주째 또는 제 5 주째에 일어난다 “ 제 m 달의 마지막 d 번째일 ” (을)를 의미합니다. 제 1 주는, d 번째일이 일어나는 최초의 주입니다. 제 0 일은 일요일입니다.

        time (은)는, 선두의 부호 (‘-’) 또는 (‘+’) 하지만 용서되지 않는 것 이외는, offset (와)과 같은 형식을 가집니다. time (을)를 주지 않는 경우는, 02:00:00 하지만 기본값이 됩니다.

    TZ 사양에 rule 하지만 없는 경우는, 시스템 시간 변환 정보 디렉토리안의 tzfile(5) 형식 파일 posixrules 에 의해 지정된 규칙이 이용되어 표준시간 및 서머타임의 UTC (으)로부터의 오프셋(offset)는 TZ 의 offset 값으로 지정된 값에 의해 옮겨놓을 수 있습니다.

System V Release 3.1 과의 호환성을 갖게하기 (위해)때문에, rule (을)를 나머지의 사양으로부터 구별하기 위해서 세미콜론 (‘’); (을)를 사용할 수도 있습니다.

파일
/etc/localtime
    로컬 시간대 파일
/usr/share/zoneinfo
    시간대 디렉토리
/usr/share/zoneinfo/posixrules
    POSIX 스타일의 TZ 에 관한 규칙
/usr/share/zoneinfo/GMT
    UTC 윤초

/usr/share/zoneinfo/GMT 파일이 존재하지 않는 경우는, UTC 윤초는 /usr/share/zoneinfo/posixrules (으)로부터 로드 됩니다.

참조
date(1), gettimeofday(2), ctime(3), getenv(3), time(3), tzfile(5)

역사
tzset() 및 tzsetwall() 함수는, 최초로 4.4BSD 에 나타났습니다.