리눅스에서 년, 월, 일, 시, 분, 초 로 나타내는 함수로

time, localtime 있다.

1장. localtime(3)

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

1.1절. 사용법

#include <time.h>

struct tm *localtime(const time_t *timep);

1.2절. 설명

timep 를 입력받아서 유저 시스템의 time zone 에 맞도록
시간 값을 돌려준다. 시간 값은 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 부터의
계산하고픈 때까지의 시간의 차이를 초로 환산한 값이다.


1.3절. 반환값

tm 구조체를 넘겨준다.


1.4절. 예제

#include <time.h>

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

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("%sn", buffer);
}

void swaptime(time_t org_time, char *time_str)
{
struct tm *tm_ptr;
tm_ptr = localtime(&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]# ./localtime
2002-8-23 18:18:32


출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/3/localtime

Tags: ,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.