asctime(将时间和日期以字符串的格式表示)
表头文件:
#include <time.h>
定义函数:
char *asctime(const struct tm *timeptr)
功能说明:
asctime()将参数timeptr所指的tm结构中的信息转换成真是世界所使用的时间日期表示方法,然后将结果以字符串的形式返回。
参数说明:
timeptr 是指向 tm 结构的指针,包含了分解为如下各部分的日历时间:
struct tm {
int tm_sec; /* 秒,范围从 0 到 59 */
int tm_min; /* 分,范围从 0 到 59 */
int tm_hour; /* 小时,范围从 0 到 23 */
int tm_mday; /* 一月中的第几天,范围从 1 到 31 */
int tm_mon; /* 月份,范围从 0 到 11 */
int tm_year; /* 自 1900 起的年数 */
int tm_wday; /* 一周中的第几天,范围从 0 到 6 */
int tm_yday; /* 一年中的第几天,范围从 0 到 365 */
int tm_isdst; /* 夏令时 */
};
示例代码:
#include <stdio.h>
#include <string.h>
#include <time.h>
int main()
{
struct tm t;
t.tm_sec = 10;
t.tm_min = 10;
t.tm_hour = 6;
t.tm_mday = 25;
t.tm_mon = 2;
t.tm_year = 89;
t.tm_wday = 6;
puts(asctime(&t));
return(0);
}
结果展示:
Sat Mar 25 06:10:10 1989
clock(取得进程占用CPU的大约时间)
表头文件:
#include <time.h>
定义函数:
clock_t clock(void)
功能说明:
clock()用来取得进程所占CPU的大约时间。
ctime(取得进程占用CPU的大约时间)
表头文件:
#include <time.h>
定义函数:
char *ctime(const time_t *timep)
功能说明:
ctime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间提起表示方法,然后将结果以字符串的形态返回。
difftime(计算时间差距)
表头文件:
#include <time.h>
定义函数:
double difftime(time_t time1, time_t time2)
功能说明:
difftime(time_t time1, time_t time2) 返回 time1 和 time2 之间相差的秒数 (time1 - time2)。这两个时间是在日历时间中指定的,表示了自纪元 Epoch(协调世界时 UTC:1970-01-01 00:00:00)起经过的时间。
#include <stdio.h>
#include <time.h>
#ifdef _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#endif
int main ()
{
time_t start_t, end_t;
double diff_t;
printf("程序启动...\n");
time(&start_t);
printf("休眠 5 秒...\n");
Sleep(5);
time(&end_t);
diff_t = difftime(end_t, start_t);
printf("执行时间 = %f\n", diff_t);
printf("程序退出...\n");
return(0);
}
结果展示:
程序启动...
休眠 5 秒...
执行时间 = 5.000000
程序退出...
ftime(取得目前的时间和日期)
表头文件:
#include <time.h>
定义函数:
int ftime(struct timeb *tp)
功能说明:
ftime()将目前日期由tp所指的结构返回。tp结构定义:
struct timeb{
time_t time; /* 为1970-01-01至今的秒数*/
unsigned short millitm; /* 千分之一秒即毫秒 */
short timezonel; /* 为目前时区和Greenwich相差的时间,单位为分钟 */
short dstflag; /* 为日光节约时间的修正状态,如果为非0代表启用日光节约时间修正 */
};
gmtime(取得目前的时间和日期)
表头文件:
#include <time.h>
定义函数:
struct tm *gmtime(const time_t *timer)
功能说明:
gmtime(const time_t *timer) 使用 timer 的值来填充 tm 结构,并用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。该函数返回指向 tm 结构的指针,该结构带有被填充的时间信息。下面是 timeptr 结构的细节:
struct tm {
int tm_sec; /* 秒,范围从 0 到 59 */
int tm_min; /* 分,范围从 0 到 59 */
int tm_hour; /* 小时,范围从 0 到 23 */
int tm_mday; /* 一月中的第几天,范围从 1 到 31 */
int tm_mon; /* 月份,范围从 0 到 11 */
int tm_year; /* 自 1900 起的年数 */
int tm_wday; /* 一周中的第几天,范围从 0 到 6 */
int tm_yday; /* 一年中的第几天,范围从 0 到 365 */
int tm_isdst; /* 夏令时 */
};
localtime(取得当地目前的时间和日期)
表头文件:
#include <time.h>
定义函数:
struct tm *localtime(const time_t *timer)
功能说明:
localtime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果有结构tm返回。下面是 tm 结构的细节:
struct tm {
int tm_sec; /* 秒,范围从 0 到 59 */
int tm_min; /* 分,范围从 0 到 59 */
int tm_hour; /* 小时,范围从 0 到 23 */
int tm_mday; /* 一月中的第几天,范围从 1 到 31 */
int tm_mon; /* 月份,范围从 0 到 11 */
int tm_year; /* 自 1900 起的年数 */
int tm_wday; /* 一周中的第几天,范围从 0 到 6 */
int tm_yday; /* 一年中的第几天,范围从 0 到 365 */
int tm_isdst; /* 夏令时 */
};
mktime(将时间结构数据转换成经过的秒数)
表头文件:
#include <time.h>
定义函数:
time_t mktime(struct tm *timeptr)
功能说明:
mktime(struct tm *timeptr) 把 timeptr 所指向的结构转换为自 1970 年 1 月 1 日以来持续时间的秒数。
strftime(格式化日期和时间)
表头文件:
#include <time.h>
定义函数:
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
功能说明:
strftime()会将参数tm的时间结构,依照参数format所指定的字符串格式做转换,转换后的字符串内容将复制到参数s所指的字符串数组中,该字符串的最大长度为参数max所控制。
参数说明:
- str -- 这是指向目标数组的指针,用来复制产生的 C 字符串。
- maxsize -- 这是被复制到 str 的最大字符数。
- format -- 这是 C 字符串,包含了普通字符和特殊格式说明符的任何组合。这些格式说明符由函数替换为表示 tm 中所指定时间的相对应值。格式说明符是:
说明符 | 替换为 | 实例 |
---|---|---|
%a | 缩写的星期几名称 | Sun |
%A | 完整的星期几名称 | Sunday |
%b | 缩写的月份名称 | Mar |
%B | 完整的月份名称 | March |
%c | 日期和时间表示法 | Sun Aug 19 02:56:02 2012 |
%d | 一月中的第几天(01-31) | 19 |
%H | 24 小时格式的小时(00-23) | 14 |
%I | 12 小时格式的小时(01-12) | 05 |
%j | 一年中的第几天(001-366) | 231 |
%m | 十进制数表示的月份(01-12) | 08 |
%M | 分(00-59) | 55 |
%p | AM 或 PM 名称 | PM |
%S | 秒(00-61) | 02 |
%U | 一年中的第几周,以第一个星期日作为第一周的第一天(00-53) | 33 |
%w | 十进制数表示的星期几,星期日表示为 0(0-6) | 4 |
%W | 一年中的第几周,以第一个星期一作为第一周的第一天(00-53) | 34 |
%x | 日期表示法 | 08/19/12 |
%X | 时间表示法 | 02:50:06 |
%y | 年份,最后两个数字(00-99) | 01 |
%Y | 年份 | 2012 |
%Z | 时区的名称或缩写 | CDT |
%% | 一个 % 符号 | % |
- timeptr -- 这是指向 tm 结构的指针,该结构包含了一个呗分解为以下各部分的日历时间:
struct tm {
int tm_sec; /* 秒,范围从 0 到 59 */
int tm_min; /* 分,范围从 0 到 59 */
int tm_hour; /* 小时,范围从 0 到 23 */
int tm_mday; /* 一月中的第几天,范围从 1 到 31 */
int tm_mon; /* 月份,范围从 0 到 11 */
int tm_year; /* 自 1900 起的年数 */
int tm_wday; /* 一周中的第几天,范围从 0 到 6 */
int tm_yday; /* 一年中的第几天,范围从 0 到 365 */
int tm_isdst; /* 夏令时 */
};
time(取得目前的时间)
表头文件:
#include <time.h>
定义函数:
time_t time(time_t *seconds)
功能说明:
此函数会返回从公元1970年1月1日的UTC时间的0时0分0秒算起到现在所经过的秒数。如果 seconds 不为空,则返回值也存储在变量 seconds 中。