1、time_t 长整型
语法定义:
typedef long time_t; /* time value */
2 、 time
语法:
#include <time.h> time_t time( time_t *time ); |
功能: 函数返回当前时间,如果发生错误返回零。如果给定参数time ,那么当前时间存储到参数time中。
3、struct tm 时间结构体
语法
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 */
};
4、localtime
语法:
#include <time.h> struct tm *localtime( const time_t *time ); |
功能:函数返回本地日历时间
5 、asctime
#include <time.h> char *asctime( const struct tm *ptr ); |
功能: 函数将ptr所指向的时间结构转换成下列字符串:
day month date hours:minutes:seconds year\n\0
例如:
printf("%s",asctime(&ptr));
结果: Mon Jun 26 12:03:53 2000
6 、gmtime
语法:
#include <time.h> struct tm *gmtime( const time_t *time ); |
功能:函数返回给定的统一世界时间(通常是格林威治时间),如果系统不支持统一世界时间系统返回NULL。
==================== 下面例子 =========================
struct tm *pstr;
time_t t,t1;
t = time(NULL);
pstr = localtime(&t);
int yyyy = (pstr->tm_year) + 1900; // 年份是从1900开始
int mm = (pstr->tm_mon) + 1; // 月是从0-11,所以要加1
int dd = (pstr->tm_mday) ; // 日是从1 开始
sprintf("%d年%d月%d日",yyyy,mm,dd);
输出结果:2010年6月19日
如果仅仅是为了输出时间日期,可以直接把 t 引用传到 ctime 结构体里面:ctime( &t )
printf("============== 下面是 UTC 时间================\n");
pstr = gmtime(&t);
printf("UTC hour is: %d\n",pstr->tm_hour);
printf(asctime(p));
struct tm *pstr;
time_t t,t1;
t = time(NULL);
pstr = localtime(&t);
int yyyy = (pstr->tm_year) + 1900; // 年份是从1900开始
int mm = (pstr->tm_mon) + 1; // 月是从0-11,所以要加1
int dd = (pstr->tm_mday) ; // 日是从1 开始
sprintf("%d年%d月%d日",yyyy,mm,dd);