Unix ½Ã°£ ¾ò¾î¿À±â
ÃÑ ÆäÀÌÁö ¼ö : 3121

Àüü ÇÔ¼ö/¿ë¾î»çÀü
ÇöÀçÀ§Ä¡ : ¸Þ´º¾ó>¸®´ª½º Ç¥ÁØ ¶óÀ̺귯¸®>localtime


<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=localtime">localtime</a>(3)

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("%s\n", 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
Sun 5.9 ¿¡¼­ ÀÛ¾÷½Ã localtime ¿¡ Ãʸ¦ ´Ù¸£°Ô ÇØ¼­ ¿¬´Þ¾Æ È£Ãâ ÇÒ °æ¿ì ¸¶Áö¸·¿¡ È£ÃâÇÑ ÇÔ¼öÀÇ ÃÊ °ªÀ¸·Î 2°³ÀÇ tm ±¸Á¶Ã¼ °ªÀÌ °°¾ÆÁü
#include    
#include    
#include    
#include    

int main(void)
{
    struct tm       *ctp;
    struct tm       *ltp;
    struct timeval  tp;
    int             rtn;
    long            lSec;
    long            lSecDiff;


    lSecDiff    =   3600 * 13;

    rtn = gettimeofday(&tp, NULL);
    if (rtn != -1)
    {
        lSec    =   tp.tv_sec   -    lSecDiff ;
        printf("lSecDiff =[%ld]tp.tv_sec   =   [%ld] lSec = [%ld]\n",lSecDiff ,tp.tv_sec, lSec   );
        ctp = localtime(&lSec);
        printf("CTP: %02d:%02d:%02d.%06d\n",ctp->tm_hour, ctp->tm_min, ctp->tm_sec, tp.tv_usec);

        ltp = localtime(&tp.tv_sec );
        printf("LTP: %02d:%02d:%02d.%06d\n",ltp->tm_hour, ltp->tm_min, ltp->tm_sec, tp.tv_usec);
    }

    rtn = gettimeofday(&tp, NULL);
    if (rtn != -1)
    {
        lSec    =   tp.tv_sec   -    lSecDiff ;
        printf("lSecDiff =[%ld]tp.tv_sec   =   [%ld] lSec = [%ld]\n",lSecDiff ,tp.tv_sec, lSec   );

        ctp     = localtime(&lSec);
        ltp = localtime(&tp.tv_sec );
        printf("CTP: %02d:%02d:%02d.%06d\n",ctp->tm_hour, ctp->tm_min, ctp->tm_sec, tp.tv_usec);
        printf("LTP: %02d:%02d:%02d.%06d\n",ltp->tm_hour, ltp->tm_min, ltp->tm_sec, tp.tv_usec);
    }

    return  0;
}
À§ ¿¹Á¦ÀÇ °á°ú´Â ´ÙÀ½°ú °°´Ù
lSecDiff =[46800]tp.tv_sec   =   [1212155871] lSec = [1212109071]
CTP: 09:57:51.828102
LTP: 22:57:51.828102
lSecDiff =[46800]tp.tv_sec   =   [1212155871] lSec = [1212109071]
CTP: 22:57:51.829294
LTP: 22:57:51.829294