[리눅스] 현재 시간을 자신이 원하는 포맷으로 출력하기

gmtime(3)

차례
1.1절. 사용법
1.2절. 설명
1.3절. 반환값
1.4절. 예제

1.1절. 사용법

#include 

struct tm *gmtime(const time_t *timep);


1.2절. 설명

timep 를 입력받아서 시간 값을 돌려준다.
시간 값은 tm 구조체에 들어간다.
tm 구조체는 다음과 같은 멤버 변수들을 포함한다.

struct tm
{
int tm_sec; /* 초 */
int tm_min; /* 분 */
int tm_hour; /* 시간 */
int tm_mday; /* 일/월 */
int tm_mon; /* 월 */
int tm_year; /* 년 */
int tm_wday; /* 일/주 */
int tm_yday; /* 일/년 */
int tm_isdst; /* 섬마타임 */
};

월은 0부터 시작한다. 그러므로 프로그램상에서 제대로 표현하려면 +1을
해주어야 한다. 또한 년의 경우에는 +1900 해주어야 한다.

아규먼트로 들어가는 timeptr 은 1970년 1월 1일 00:00:00 부터의
계산하고픈 때까지의 시간의 차이를 초로 환산한 값이다.

gmtime 은 UTC(Universal Time Coordinated) 협정 세계시를 되돌려준다.
각 지방시는 이것을 기준으로 결정이 된다. 이 세계시는
그리니치 평균시의 시간체계를 12시간 앞당겨 자정부터 시작하도록
조정되어 있다.


1.3절. 반환값

tm 구조체를 넘겨준다.


1.4절. 예제

#include 
#include
#include
#include

void swaptime(time_t, char *);
int main()
{
char buffer[255];
time_t the_time;

// time 함수를 이용해서 현재 시간을 얻어온다.
time(&the_time);

memset(buffer, 0x00, 255);
swaptime(the_time, buffer);
printf("%s
", buffer);
}

void swaptime(time_t org_time, char *time_str)
{
struct tm *tm_ptr;
tm_ptr = gmtime(&org_time);

sprintf(time_str, "%d-%d-%d %d:%d:%d", tm_ptr->tm_year+1900,
tm_ptr->tm_mon+1,
tm_ptr->tm_mday,
tm_ptr->tm_hour,
tm_ptr->tm_min,
tm_ptr->tm_sec);

}

위 프로그램을 컴파일한다음 실행시키면 다음과 같은 결과를 보여줄것이다.
[root@localhost test]# ./gmtime
2002-8-23 18:18:32


powered by performancing firefox




'develop > dogvelop' 카테고리의 다른 글

[Linux] key & serial 멀티 프로세서로 처리하기  (0) 2006.12.09
[리눅스] sleep & usleep  (0) 2006.11.29
프로세스 찾아서 지우고 실행하기  (0) 2006.08.21
데몬 프로그램 만들기  (0) 2006.08.21
Arm Assemble  (0) 2006.06.29