结构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;
};
int tm_sec 代表目前秒数,正常范围为0-59,但允许至61秒
int tm_min 代表目前分数,范围0-59
int tm_hour 从午夜算起的时数,范围为0-23
int tm_mday 目前月份的日数,范围01-31
int tm_mon 代表目前月份,从一月算起,范围从0-11
int tm_year 从1900 年算起至今的年数
int tm_wday 一星期的日数,从星期一算起,范围为0-6
int tm_yday 从今年1月1日算起至今的天数,范围为0-365
int tm_isdst 日光节约时间的旗标
time_t time(time_t *t);
time() 函数:返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数。
主要用来获取当前的系统时间,返回的结果是一个time_t类型,其值表示从UTC(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime函数将time_t所表示的UTC时间转换为本地时间(我们是+8区,比UTC多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。
char *ctime(const time_t *time);
功 能: 把日期和时间转换为字符串,输出格式如下:
Thu Nov 19 15:54:39
char* asctime (const struct tm * timeptr).
char *ctime(const time_t *time);
功 能: 把日期和时间转换为字符串,输出格式如下:
Thu Nov 19 15:54:39
程序例:
1
2
3
4
5
6
7
8
9
|
#include<cstdio>
#include<ctime>
intmain(
void
)
{
time_t
t;
t=
time
(&t);
printf
(
"Today'sdateandtime:%s\n"
,
ctime
(&t));
return
0;
}
|
char* asctime (const struct tm * timeptr).
把timeptr指向的tm结构体中储存的时间转换为字符串字符串格式返格式为:回,Www Mmm dd hh:mm:ss yyyy。其中Www为星期;Mmm为月份;dd为日;hh为时;mm为分;ss为秒;yyyy为年份
struct tm *localtime(const time_t *clock);
此函数获得的tm 结构体的时间是 日历时间。
struct tm *gmtime(const time_t *time);
功能:把日期和时间转换为 格林威治(GMT)时间的函数。将参数time 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
其中asctime ()与ctime()都是可以把时间转为 Thu Nov 19 15:54:39 格式的,不同的是asctime ()是转为ASCII,且函数参数为struct *tm结构体的,一般用localtime()或gmtime()函数转为 tm 格式;ctime()是转为字符串,且参数是time_t。
。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/* asctime example */
#include <stdio.h> /* printf */
#include <time.h> /* time_t, struct tm, time, localtime, asctime */
int
main ()
{
time_t
rawtime;
struct
tm
* timeinfo;
time
( &rawtime );
timeinfo =
localtime
( &rawtime );
printf
(
"The current date/time is: %s"
,
asctime
(timeinfo) );
return
0;
}
|
函数范例的输出:
1
|
The current date/time is: Wed Feb 13 15:46:11 2013
|
struct tm *localtime(const time_t *clock);
此函数获得的tm 结构体的时间是 日历时间。
struct tm *gmtime(const time_t *time);
功能:把日期和时间转换为 格林威治(GMT)时间的函数。将参数time 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
其中asctime ()与ctime()都是可以把时间转为 Thu Nov 19 15:54:39 格式的,不同的是asctime ()是转为ASCII,且函数参数为struct *tm结构体的,一般用localtime()或gmtime()函数转为 tm 格式;ctime()是转为字符串,且参数是time_t。
。