struct tm
{ int tm_sec; /* Seconds. [0-60] (1 leap second) */ int tm_min; /* Minutes. [0-59] */ int tm_hour; /* Hours. [0-23] */ int tm_mday; /* Day. [1-31] */ int tm_mon; /* Month. [0-11] */ int tm_year; /* Year - 1900. */ int tm_wday; /* Day of week. [0-6] */ int tm_yday; /* Days in year.[0-365] */ int tm_isdst; /* DST. [-1/0/1]*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/ #ifndef _TM_DEFINED /
/ struct tm { / / int tm_sec; /* seconds after the minute - [0,59] */ / / int tm_min; /* minutes after the hour - [0,59] */ / / int tm_hour; /* hours since midnight - [0,23] */ / / int tm_mday; /* day of the month - [1,31] */ / / int tm_mon; /* months since January - [0,11] */ / / int tm_year; /* years since 1900 */ / / int tm_wday; /* days since Sunday - [0,6] */ / / int tm_yday; /* days since January 1 - [0,365] */ / / int tm_isdst; /* daylight savings time flag */ / / }; / / #define _TM_DEFINED / / #endif / ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifdef __USE_BSD
long int tm_gmtoff; /* Seconds east of UTC. */ __const char *tm_zone; /* Timezone abbreviation. */ #else long int __tm_gmtoff; /* Seconds east of UTC. */ __const char *__tm_zone; /* Timezone abbreviation. */ #endif }; 在C語言中 有time_t tm timeval等幾種類型的時間 1.time_t爲typedef __int64 __time64_t; 2.struct timeval { uint tv_sec; uint tv.usec; } 具體操做函數 包含文件:<sys/time.h> <time.h> tm *gmtime(time_t * t); time_t time(time_t *t); char *asctime(const struct tm *timeptr); char *ctime(const time_t *timer); 把tm指針轉換爲time_t time_t mktime(struct tm *timeptr); localtime和gmtime的區別在於gmtime將時間轉換爲國際標準格式,也就是相對於1970 00:00:00開始的時間戳 而localtime是相對於本地的時區的格式。 #include<stdio.h> #include<time.h> #include<sys/time.h> #include<signal.h> #include<pthread.h> void quit_t() { printf("eixt now"); exit(-1); } int main() { /* struct timeval vt; gettimeofday(&vt , NULL); while(1) { printf("%u:%u\n",vt.tv_sec,vt.tv_usec); sleep(2); signal(SIGINT, quit_t); } */
struct tm *tt; time_t t = time(NULL); tt = gmtime(&t); //char *s = asctime(tt); printf("%d-%d-%d %d:%d:%d",tt->tm_year+1900,tt->tm_mon+1,tt->tm_mday,tt->tm_hour,tt->tm_min,tt->tm_sec); return 0; }
|