time 函数

 

       time_t    tTime1 = 0;

       time_t    tTime2 = 0;

       time_t    tTime3 = 0;

       struct tm      *pTime = NULL;

       struct tm      sTime = {0};

       size_t            timeLen = 0;

      

       time(&tTime1);                    // 以秒为单位获得当前系统时间, int

       tTime2 = time(NULL);

    tTime3 = mktime(&sTime);         // 转换本地时间为日历值,若当地时间在 1970 1 1
               // 午夜之前,则返回 time_t 类型的 -

                                    // 其实是把秒数转为年月日时分秒

 

   ptime = localtime(&tTime2);     // 把一个时间数据转换为当地时区的时间,若时间在

               // 1970 1 1 日之前,返回 NULL

      

       timeLen = strftime( strTime,
                           33, 
                           "%Y(Y)%m(M)%d(D)%H(H)%M(M)%S(S)",
                           
pTime);                  // 格式化一个时间字符串

 

 

strftime()

格式化一个时间字符串

size_t     strftime( char *strDest, size_t maxsize, const char *format, const struct tm *timeptr );

 

这个例子中将以“星期 - - - 年”的格式显示当前日期:     

time_t   LocalTime;   

struct     tm *Today;   

char     Buffer[150],  Format[]=" 今天的日期是: %A %d %B %Y";    

time(&LocalTime);     

Today=localtime(&LocalTime);    

strftime(Buffer,150,format Today);  

cout<<Buffer;

 

 

_strtime()

把当前时间复制到缓冲区中,

char *_strtime( char *timestr );

 

这个例子中获取了当前时间:  

char buffer[10];  

_strtime(buffer); 

 

 

time()

以秒为单位获取系统时间

time_t time( time_t *timer );

 

 

_utime()

为文件设置修改时间,若成功则返回0,否则返回 -1

int _utime( unsigned char *filename, struct _utimbuf *times );

 

这个例子中把文件 sample.txt 的修改时间变成当前的系统时间:   

system("dir sample.txt");  

_utime("sample.txt",NULL);  

system("dir sample.txt");

 

 

asctime()

tm 型的变量转换为一个字符串

char *asctime( const struct tm *timeptr );

 

得到系统当前日期和时间:

time_t Elapse; 

struct tm *Now; 

time(&Elapse); 

Now=locatime(&Elapse); 

cout<<" 当前的日期和时间为: "<<asctime(Now);

 

 

ctime()

把一个 time_t 型的时间值转换为一个字符串,并且根据当地的时区设置对字符串进行调整

char *ctime( const time_t *timer );

 

这个例子中可以显示当地时间:   

time_t ltime; 

time(&ltime);   

printf( "The time is %s\n", ctime( &ltime ) );

 

 

difftime()

返回两个 time_t 型变量之间的时间间隔

double difftime( time_t timer1, time_t timer0 );

 

这个例子中实现了计算电脑执行 100 万次 for 语句所需的时间:    

clock_t Start,Finish;    

long  n=1000000L;  

double Elapse;  

time(&Start);  

for( ; n--; ) { ; }  

time(&Finish);   

Elapsed= difftime(Finish,Start);

 

 

_ftime()

返回当前时间

void _ftime( struct _timeb *timeptr );

这个例子中把当前时间的信息写入结构 timebuffer 中:   

struct_time timebuffer;  

char *p;  

_ftime(&timebuffer);   

p=ctime(&(timebuffer.time));

 

 

_futime()

为某个已经打开的文件设置修改时间,若成功则返回 0 ,否则返回 -1

int _futime( int handle, struct _utimbuf *filetime );

这个例子中使用了 _futime 函数来把当前的系统时间设置为文件修改的时间:     

int hFile; 

system("dir futime.c");  

hFile=_open("futime.c",_o_RDWR);  

if( _futime(hFile,NULL)==-1)  

perror("_futime failed\n");   

else  

printf( "File time modified\n");  

close (hfile);   

system("dir futime.c");

 

 

gmtime()

把一个 time_t 类型的数据转换为 tm 类型

struct tm *gmtime( const time_t *timer );

这个例子中实现了以“星期、年月日、时分秒”的形式显示当前时间:   

long LocalTime;   

struct tm *GlobalTime;  

time(&LocalTime);  

GlobalTime=gmtime(&LocalTime);  

cout<<asctime(GlobalTime);

 

 

localtime()

把一个时间数据转换为当地时区的时间,若时间在 1970 1 1 之前,返回 NULL

struct tm *localtime( const time_t *timer );

 

 

mktime()

转换本地时间为日历值,若当地时间在 1970 1 1 日午夜前 ,则返回 time_t 类型的 -

time_t mktime( struct tm *timeptr );

这个例子将显示当前的时间和日期: 

time_t Now,Result; 

struct  tm LocalTime;  

time(&Now);  

LocatTime-*locatimt(&Now); 

Result=mktime(&LocalTime); 

cout<<" 当前的时间和日期是: "<<asctime(&LocalTime);

 

 

_wutime()

为一个文件设置修改时间,若成功则返回 0 ,否则返回 -1 ,本函数只适用于宽字符编程

int _wutime( wchar_t *filename, struct _utimbuf *times );

 

 

_wstrtime()

把当前时间复制到缓冲区中,本函数只适用于宽字符编程

wchar_t *_wstrtime( wchar_t *timestr );

 

 

_wctime()

把一个 time_t 型的时间值转换为一个字符串,并且根据当地的时区设置对字符串进行调整

wchar_t *_wctime( const time_t *timer );

 

 

wcsftime()

格式化一个时间字符串

size_t wcsftime( wchar_t *strDest, size_t maxsize, const wchar_t *format, const struct tm *timeptr );

 

 

wasctime()

tm 型的变量转换为一个宽字符串

wchar_t *_wasctime( const struct tm *timeptr );

 

转换取系统时间为在数据库中取时间

 

       char cTime[] = {0};

       long nTime = 0;

       DADBHandle      handle;

       time_t    t_time;

#if 0

       time(&t_now);

       tp = localtime(&t_now);

       ncurmin = tp->tm_min;

       ncurhour = tp->tm_hour;

#else

       rv = DB_ConnGet(&handle, 0, 0);

       if(DAESQLDB_OK != rv)

       {

              LOG_ERR("err DA_EsqlDB_ConnGet") 

       }

       rv = DB_GetDBTime(handle, cTime);

       if(DAESQLDB_OK != rv)

       {                          

              LOG_ERR("err DA_EsqlDB_GetDBTime")

       }

       rv = DB_ConnFree(handle, 1);

       if(DAESQLDB_OK != rv)

       {

              LOG_ERR("error in DA_EsqlDB_ConnFree")           

       }

       nTime = atol(cTime);

       t_time = time(&nTime);

       tp = localtime(&t_time);

       ncurmin = tp->tm_min;

       ncurhour = tp->tm_hour;

#endif