timezone 변경 후 어떤 경우에도 localtime function이 동작하기
localtime 의 상세동작에 대해서 궁금해서 글을 올립니다.
timezone을 변경한 후에 localtime을 이용해서 timezone이 반영된 현재 날짜, 시간을 출력하고자 합니다.
제가 원하는 것을 예를 들어서 설명하겠습니다.
현재 시각은 UTC 기준으로 되어 있는 상황에서, timezone을 변경합니다. 이 때 /etc/localtime 이 적당한 timezone information file을 가리키도록 link를 설정합니다.
해당 shell 에서 localtime function을 이용해서 현재 시각을 display하라고 하면 여전히 UTC 기준 시각이 나옵니다. 물론 system(date) 명령을 내리면, timezone변경이 반영된 local time이 나옵니다.
shell을 다시 올리게 되면, 이 때도 localtime function 결과는 해당 timezone이 반영된 값이 보입니다.
그러나, 제가 원하는 건, 해당 shell에서 바로 localtime을 했을 때도 timezone이 반영된 값이 표시되는 겁니다.
제가 알고 있기에 localtime function은 TZ 값을 참조하든지, TZ 값이 없을 경우에는 /etc/localtime 을 참조해서 UTC가 아닌 local time을 보여 주는 것으로 알고 있는데 왜 해당 shell에서는 localtime function 결과에 timezone이 반영되지 않는 것인지 궁금합니다.
꼭 반영시키고 싶은데, 방법을 혹시 아시는 고수님들 가르쳐 주시기 바랍니다.
감사합니다.
제가 알기로는 localtime()가 TZ 변수를 참조 하는 것으로 알고
제가 알기로는 localtime()가 TZ 변수를 참조 하는 것으로 알고 있습니다.
또한 /etc/localtime값을 참조 하고요....
localtime를 이용한 파일을 컴파일 한 것을 strace를 이용해 검증해 보세요..
그 값을 한번 보여주세요
댓글 달기