unix time이 0이 되는 기준
글쓴이: wkaxld / 작성시간: 토, 2011/04/30 - 6:01오후
제목 그대로 unix time이 0이 되는 기준 시간을 알고 싶습니다. Google 등을 찾아보면 unix time의 기준 시간이 1970년 1월 1일 0시라고 나오는데, 이것을 C를 이용하여 local unix time으로 바꾸기 위해 mktime 함수를 사용하면 결과가 이해가 안되게 나옵니다. mktime이 혹자는 1900년이 기준이라 주장(?) 하는 문서도 있고 해서 1970년이든 1900년이든 local time을 계산 하면 세계시간기준지하고 약 9시간 차이 날테네 대략 1900년 1월 1일 (또는 기준에 따라 1970년 1월1일) 0시 0분을 집어 넣으면 대략 9*3600 정도의 숫자가 나와야 되는거 아닌가요?
혹시 몰라 test를 해 본 code를 넣어 봅니다.
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { struct tm tm1; time_t t1; tm1.tm_year=1900; //tm1.tm_year=1970; tm1.tm_mon=0; tm1.tm_mday=1; tm1.tm_hour=0; tm1.tm_min=0; tm1.tm_sec=0; t1=mktime(&tm1); printf("t=%ld\n",t1); return(1); }
위 코드의 실행결과는...
t=57749209200
와 같은 숫자가 나오네요.
Forums:
tm_year 는 "since 1900" 값이기
tm_year 는 "since 1900" 값이기 때문에, 1900년을 나타내려면 0, 1970년을 나타내려면 70을 쓰셔야...
제가 해보니 tm_year 에 70을 넣으면 딱 -32400 (9*3600) 나오는군요. :-)
답면 감사드립니다.
답면 감사드립니다.
잠온다~!
댓글 달기