C语言标准库概览详述[11]-日期时间<time.h>
2012-09-19 13:01
239 查看
头文件<time.h>中说明了一些用于处理日期和时间的类型和函数。其中的一部分函数用于处理当地时间,因为时区等原因,当地时间与日历时间可能不相同。clock_t和time_t是两个用于表示时间的算术类型,而struct tm则用于存放日历时间的各个成分。tm的各个成员的用途及取值范围如下:
其中,tm_isdst在使用夏令时时其值为正,在不使用夏令时时其值为0,如果该信息不能使用,其值为负。
返回程序自开始执行到目前为止所占用的处理机时间。如果处理机时间不可使用,那么返回-1。clock()/CLOCKS_PER_SEC是以秒为单位表示的时间。
返回当前日历时间。如果日历时间不能使用,则返回-1。如果tp不为NULL,那么同时把返回值赋给*tp。
返回time2-time1的值(以秒为单位)。
将结构*tp中的当地时间转换为time_t类型的日历时间,并返回该时间。如果不能转换,则返回-1。
将结构*tp中的时间转换成如下所示的字符串形式:
day month date hours:minutes:seconds year\n\0
如:
Fri Apr 15 15:14:13 2005\n\0
返回指向该字符串的指针。字符串存储在可被其他调用重写的静态对象中。
将*tp中的日历时间转换为当地时间的字符串,并返回指向该字符串指针。字符串存储在可被其他调用重写的静态对象中。等价于如下调用:
asctime(localtime(tp));
将*tp中的日历时间转换成struct tm结构形式的国际标准时间(UTC),并返回指向该结构的指针。如果转换失败,返回NULL。结构内容存储在可被其他调用重写的静态对象中。
将*tp中的日历时间转换成struct tm结构形式的本地时间,并返回指向该结构的指针。结构内容存储在可被其他调用重写的静态对象中。
根据fmt的格式说明把结构*tp中的日期与时间信息转换成指定的格式,并存储到s所指向的数组中,写到s中的字符数不能多于smax。函数返回实际写到s中的字符数(不包括'\0');如果产生的字符数多于smax,则返回0。
fmt类似于printf()中的格式说明,它由0个或多个转换规格说明与普通字符组成。普通字符原封不动的拷贝到s中,每个%c按照下面所描述的格式用与当地环境相适应的值来替换。转换规格列表如下:
int tm_sec; /* 秒,0~61 */
int tm_min; /* 分,0~59 */
int tm_hour; /* 时,0~23 */
int tm_mday; /* 日,1~31 */
int tm_mon; /* 月(从1月开始),0~11 */
int tm_year; /* 年(从1900年开始) */
int tm_wday; /* 星期(从周日开始),0~6 */
int tm_yday; /* 天数(从1月1日开始),0~365 */
int tm_isdst; /* 夏令时标记 */
其中,tm_isdst在使用夏令时时其值为正,在不使用夏令时时其值为0,如果该信息不能使用,其值为负。
11.1 clock
clock_t clock(void);
返回程序自开始执行到目前为止所占用的处理机时间。如果处理机时间不可使用,那么返回-1。clock()/CLOCKS_PER_SEC是以秒为单位表示的时间。
11.2 time
time_t time(time_t *tp);
返回当前日历时间。如果日历时间不能使用,则返回-1。如果tp不为NULL,那么同时把返回值赋给*tp。
11.3 difftime
double difftime(time_t time2, time_t time1);
返回time2-time1的值(以秒为单位)。
11.4 mktime
time_t mktime(struct tm *tp);
将结构*tp中的当地时间转换为time_t类型的日历时间,并返回该时间。如果不能转换,则返回-1。
11.5 asctime
char *asctime(const struct tm *tp);
将结构*tp中的时间转换成如下所示的字符串形式:
day month date hours:minutes:seconds year\n\0
如:
Fri Apr 15 15:14:13 2005\n\0
返回指向该字符串的指针。字符串存储在可被其他调用重写的静态对象中。
11.6 ctime
char *ctime(const time_t *tp);
将*tp中的日历时间转换为当地时间的字符串,并返回指向该字符串指针。字符串存储在可被其他调用重写的静态对象中。等价于如下调用:
asctime(localtime(tp));
10.7 gmtime
#include <time.h> struct tm *gmtime(const time_t *tp);
将*tp中的日历时间转换成struct tm结构形式的国际标准时间(UTC),并返回指向该结构的指针。如果转换失败,返回NULL。结构内容存储在可被其他调用重写的静态对象中。
11.8 localtime
struct tm *localtime(const time_t *tp);
将*tp中的日历时间转换成struct tm结构形式的本地时间,并返回指向该结构的指针。结构内容存储在可被其他调用重写的静态对象中。
11.9 strftime
size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp);
根据fmt的格式说明把结构*tp中的日期与时间信息转换成指定的格式,并存储到s所指向的数组中,写到s中的字符数不能多于smax。函数返回实际写到s中的字符数(不包括'\0');如果产生的字符数多于smax,则返回0。
fmt类似于printf()中的格式说明,它由0个或多个转换规格说明与普通字符组成。普通字符原封不动的拷贝到s中,每个%c按照下面所描述的格式用与当地环境相适应的值来替换。转换规格列表如下:
格式 | 说明 |
---|---|
%a | 一星期中各天的缩写名 |
%A | 一星期中各天的全名 |
%b | 缩写月份名 |
%B | 月份全名 |
%c | 当地时间和日期表示 |
%d | 用整数表示的一个月中的第几天(01~31) |
%H | 用整数表示的时(24小时制,00~23) |
%I | 用整数表示的时(12小时制,01~12) |
%j | 用整数表示的一年中各天(001~366) |
%m | 用整数表示的月份(01~12) |
%M | 用整数表示的分(00~59) |
%p | 与AM/PM对应的当地表示方法 |
%S | 用整数表示的秒(00~61) |
%U | 用整数表示一年中的星期数(00~53,将星期日看作为每周的第一天) |
%w | 用整数表示一周中的各天(0~6,星期日为0) |
%W | 用整数表示一年中的星期数(00~53,将星期一看作为每周的第一天) |
%x | 当地日期表示 |
%X | 当地时间表示 |
%y | 不带公元的年(00~99) |
%Y | 完整年份表示 |
%Z | 时区名字(可获得时) |
%% | %本身 |
相关文章推荐
- C语言标准库概览详述[2]-字符判断测试<ctype.h>
- C语言标准库概览详述[3]-实现限制<limits.h>,<float.h>
- C语言标准库概览详述[5]-跳转<setjmp.h>
- C语言标准库概览详述[6]-信号<signal.h>
- C语言标准库概览详述[7]-变长参数<stdarg.h>
- C语言标准库概览详述[8]-标准IO<stdio.h>
- C语言标准库概览详述[9]-实用函数<stdlib.h>
- C语言标准库概览详述[1]-断言<assert.h>
- 14-9-11 C/C++课程设计--图书馆管理系---<time.h>中时间数据类型的学习记录
- <C/C++>日期和时间的使用(time相关函数大全)
- C语言标准库概览详述[4]-数学函数库<math.h>
- <C语言>打印(输)出系统时间-----time相关函数
- Python标准库11 时间与日期 (time, datetime包)
- HTML5 - 使用<time>标注日期和时间
- <DatePicker><TimePicker>选择时间和日期
- c++日期和时间相关操作-<time.h>(ctime)
- c++日期和时间相关操作-<time.h>(ctime)
- 日期格式化标签<fmt:formatDate>&<fmt:setTimeZone>时区标签的使用demo
- 日期与时间 <电子钟和倒计时牌的的做法>
- C /C++标准库 - <ctime> (time.h)