unix环境C编程之日期时间转换
来源:互联网 发布:js trimend 编辑:程序博客网 时间:2024/05/16 07:26
1、理清概念
1.1、日历时间:
含义:国际标准时间1970年1月1日00:00:00以来经过的秒数。
数据类型:time_t。实际上是long的别名。
1.2、tm结构时间:
含义:结构化存放时间的数据结构,方便查看。ANSI C标准称使用tm结构的这种时间表示为分解时间(broken-down time)
数据类型:
struct tm
{
int tm_sec; /* 秒数,范围[0,60] */
int tm_min; /* 分钟,范围[0,59] */
int tm_hour; /* 小时,范围[0,23] */
int tm_mday; /* 日,范围[1,31] */
int tm_mon; /* 月,范围[0,11] */
int tm_year; /* 年,从1900年开始的年数,为实际年份-1900 */
int tm_wday; /* 星期,周日为0,范围[0,6] */
int tm_yday; /* 日,从每年1月1日开始的天数,范围[0,365] */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正,不实行是为0,不了解情况时为负 */
}
2、时间转换
2.1、时间转换函数
以下时间转换函数在time.h中定义 :
(1) time_t time(time_t *calptr);
功能:返回当前日期和时间。
参数:若calptr不为空,则返回的时间值也存放在calptr指向的单元内。
返回值:若成功则返回时间值,不成功则返回-1。
(2) struct tm * gmtime(const time_t *calptr);
功能:将日历时间转成国际标准时间的年、月、日、时、分、秒、周日。
参数:日历时间。
返回值:指向struct tm时间的指针。
(3) struct tm * localtime(const time_t *calptr);
功能:将日历时间转成本地时间(考虑到本地时区和夏时制标志)。
参数:日历时间。
返回值:指向struct tm时间的指针。
(4) time_t mktime(struct tm *tmptr);
功能:将时间结构数据转换成经过的秒数。
参数:tm结构时间。
返回值:日历时间。
(5) char *asctime(const struct tm *tmptr);
功能:将时间结构数据转换为相应的字符串(英文简写形式)。
参数:tm结构数据。
返回值:时间字符串。
(6) char *ctime(const time_t *calptr);
功能:将日历时间转成字符串。
参数:日历时间。
返回值:时间字符串。
(7) size_t strftime(char *restrict but, size_t maxsize,
const char *restrict format,
const struct tm *restrict tmptr);
功能:将时间结构数据转成格式化字符串。
参数:buf存放格式化的结果。maxsize为buf的长度(该长度需要保证能够存放字符串以及一个null终止符)。
format为格式化参数,类似printf的格式化。tmptr指向一个tm结构的时间数据。
1.1、日历时间:
含义:国际标准时间1970年1月1日00:00:00以来经过的秒数。
数据类型:time_t。实际上是long的别名。
1.2、tm结构时间:
含义:结构化存放时间的数据结构,方便查看。ANSI C标准称使用tm结构的这种时间表示为分解时间(broken-down time)
数据类型:
struct tm
{
int tm_sec; /* 秒数,范围[0,60] */
int tm_min; /* 分钟,范围[0,59] */
int tm_hour; /* 小时,范围[0,23] */
int tm_mday; /* 日,范围[1,31] */
int tm_mon; /* 月,范围[0,11] */
int tm_year; /* 年,从1900年开始的年数,为实际年份-1900 */
int tm_wday; /* 星期,周日为0,范围[0,6] */
int tm_yday; /* 日,从每年1月1日开始的天数,范围[0,365] */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正,不实行是为0,不了解情况时为负 */
}
2、时间转换
2.1、时间转换函数
以下时间转换函数在time.h中定义 :
(1) time_t time(time_t *calptr);
功能:返回当前日期和时间。
参数:若calptr不为空,则返回的时间值也存放在calptr指向的单元内。
返回值:若成功则返回时间值,不成功则返回-1。
(2) struct tm * gmtime(const time_t *calptr);
功能:将日历时间转成国际标准时间的年、月、日、时、分、秒、周日。
参数:日历时间。
返回值:指向struct tm时间的指针。
(3) struct tm * localtime(const time_t *calptr);
功能:将日历时间转成本地时间(考虑到本地时区和夏时制标志)。
参数:日历时间。
返回值:指向struct tm时间的指针。
(4) time_t mktime(struct tm *tmptr);
功能:将时间结构数据转换成经过的秒数。
参数:tm结构时间。
返回值:日历时间。
(5) char *asctime(const struct tm *tmptr);
功能:将时间结构数据转换为相应的字符串(英文简写形式)。
参数:tm结构数据。
返回值:时间字符串。
(6) char *ctime(const time_t *calptr);
功能:将日历时间转成字符串。
参数:日历时间。
返回值:时间字符串。
(7) size_t strftime(char *restrict but, size_t maxsize,
const char *restrict format,
const struct tm *restrict tmptr);
功能:将时间结构数据转成格式化字符串。
参数:buf存放格式化的结果。maxsize为buf的长度(该长度需要保证能够存放字符串以及一个null终止符)。
format为格式化参数,类似printf的格式化。tmptr指向一个tm结构的时间数据。
返回值:若buf能够保存结构则返回存入数组的字符数(不包括null终止符),否则返回0。
2.2、转换关系图为:
例子1:
例子2:
阅读全文
0 0
- unix环境C编程之日期时间转换
- unix环境C编程之日期时间转换
- Unix/Linux环境C编程入门教程(28) 日期时间那些事儿
- UNIX环境高级编程——时间和日期
- UNIX环境高级编程——时间和日期
- 《UNIX环境高级编程》笔记-时间和日期
- UNIX时间戳/日期转换
- mysql日期转换之mysql unix时间戳与日期的相互转换
- 将unix时间转换为日期
- 字符日期和Unix时间戳转换
- unix时间戳转换为日期格式
- Unix/Linux编程日期时间汇编
- Unix/Linux编程日期时间汇编
- Unix/Linux编程-时间和日期
- UNIX环境高级编程读书笔记(六)—时间和日期 (1)
- UNIX环境高级编程读书笔记(六)—时间和日期 (2)
- UNIX环境高级编程读书笔记(六)—时间和日期 (1)
- UNIX环境高级编程读书笔记(六)—时间和日期 (2)
- 消息摘要 MD5 和 SHA 的使用
- js,jquery获取服务器时间
- idea 上传项目到GitHub遇到的坑
- 设计模式原则(5):迪米特法则
- CSS基础-清除浮动
- unix环境C编程之日期时间转换
- C语言问题,if条件里面按位取反
- java-UML
- 第六场选拔赛 Crixalis's Equipment 贪心
- Spring boot配置的事务失效,出现错误数据不回滚解决方案
- win7环境下如何关闭IIS7服务
- 【iOS】第03讲 文件读写/NSArray/NSData/NSFileManager/NSFileHandle
- 当点击提交或者查看的时候,隐藏和显示对话框
- python-排序算法