본문 바로가기
프로그래밍/C++

C 언어 레퍼런스 - localtime 함수

by 호군 2011. 10. 13.
반응형
링크 : http://itguru.tistory.com/120


localtime
#include <time.h> // C++ 에서는 <ctime>

struct tm * localtime ( const time_t * timer );


time_t 값을 이용하여 지역 시간을 기준으로 tm 구조체를 초기화한다.
timer 가 가리키는 time_t 형 변수의 값을 이용하여 tm 구조체의 멤버들을 초기화 한 뒤 이를 가리키는 포인터를 리턴한다.
참고적으로 현재 시간을 구해와야 하는 경우 십중 팔구 이 함수를 사용하게 된다.

   현재 시각을 구해오는 가장 간단한 방법
 


time_t rawtime;
struct tm * timeinfo;

time ( &rawtime );
timeinfo = localtime ( &rawtime );


를 통해 timeinfo 가 가리키는 구조체에 현재 시각에 관련한 정보가 포함되게 된다. 예를 들어 timeinfo->tm_hour 을 하면 현재 몇 시인지 알아내올 수 있다. tm 구조체에 관련한 설명은 여기를 참조하여라.

   인자
 

timer

time_t 형 변수를 가리키는 포인터

   리턴값
 

멤버들이 초기화된 tm 구조체를 가리키는 포인터가 리턴된다.

이 때 이 tm 구조체는 정적으로 할당된 메모리에 자리하고 있는데, gmtime 함수와 localtime 함수가 공유하고 있는 공간이다. 따라서 이들 함수들을 호출하게 되면 이 구조체에 쓰여져 있던 내용이 덮어 씌워지게 된다. 만일 이 함수가 리턴한 tm 구조체를 사용할 일이 있으면 다른 구조체에 복사해 놓는 것이 좋다.

   실행 예제
 

/*

현재 시각을 출력한다.
이 예제는
http://www.cplusplus.com/reference/clibrary/ctime/localtime/
에서 가져왔습니다.

 */
#include <stdio.h>
#include <time.h>

int main ()
{
    time_t rawtime;
    struct tm * timeinfo;

    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    printf ( "Current local time and date: %s", asctime (timeinfo) );

    return 0;
}


실행 결과



   연관된 함수
 

  • asctime  :  tm 구조체를 문자열로 변환한다.
  • ctime  :  time_t 값을 토대로 asctime 함수와 동일한 작업을 한다.
  • gmtime : time_t 값을 토대로 UTC 시간에 맞추어 tm 구조체를 초기화한다.
  • mktime  :  tm 구조체 내용을 토대로 time_t 형 값을 계산한다.
  • time  :  현재 시간을 구한다.

반응형