본문 바로가기
컴퓨터/C & C++

[C언어] 현재 날짜, 시간 출력 - time.h C 표준 라이브러리

by HanJoohyun 2017. 11. 5.
반응형




안녕하세요 한주현입니다.


오늘은 C언어의 time.h 표준 라이브러리와 이를 활용하여 현재 시간을 출력하는 방법에 대해 알아보겠습니다.



C library - time.h


1
#include <time.h>
cs


C 언어 표준 라이브러리인 time.h 는 시간, 날짜에 대한 함수를 가지고 있습니다.

우리는 time_t 와 localtime 함수를 사용할 것 입니다.


1
2
time_t t = time(NULL);
struct tm tm = *localtime(&t);
cs


time() 함수에서 사용하는 time_t형 변수 t를 정의합니다.


time_t형 변수 t를 struct tm 구조체 값으로 변환합니다.

여기서 localtime() 함수는 struct tm 구조체 포인터 값을 반환하므로


1
struct tm tm = *localtime(&t);
cs


의 형태로 썼습니다.


struct tm 구조체는 다음과 같이 정의되어 있습니다.


1
2
3
4
5
6
7
8
9
10
11
struct tm {
   int tm_sec;         /* 초,  range 0 to 59            */
   int tm_min;         /* 분, range 0 to 59             */
   int tm_hour;        /* 시간, range 0 to 23            */
   int tm_mday;        /* 일, range 1 to 31             */
   int tm_mon;         /* 월, range 0 to 11             */
   int tm_year;        /* 1900년 부터의 년                */
   int tm_wday;        /* 요일, range 일(0) to 토(6)      */
   int tm_yday;        /* 1년 중 경과 일, range 0 to 365  */
   int tm_isdst;       /* 써머타임                        */
};
cs



tm 구조체는 모두 int 가 들어있습니다.

 

이를 printf로 출력해보면,


1
2
3
printf("now: %d-%d-%d %d:%d:%d\n",
       tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
       tm.tm_hour, tm.tm_min, tm.tm_sec);
cs


로 나타낼 수 있습니다.



위의 예시를 하나의 코드에 담으면 아래와 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>                                
#include <time.h>
 
int main(void){
  time_t t = time(NULL);
  struct tm tm = *localtime(&t);
 
  printf("now: %d-%d-%d %d:%d:%d\n",
         tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
         tm.tm_hour, tm.tm_min, tm.tm_sec);
 
  return 0;
}
cs


1
now: 2017-11-5 23:10:46
cs



오늘은 현재 시간을 C로 표현하고 time 표준 라이브러리에 대하여 알아봤습니다.


그럼 다음시간에 만나요~



반응형

댓글