Linux中存在三种形式的时间:
日历时间:
指的是从1970年1月1日0时0分0秒开始到目前时间点所经历的秒数
本地时间:
当地时间,北京时间
格林威治时间:
世界标准时间
第一个函数:获取日历时间,time();
函数头文件:
#include <time.h>
函数格式:
time_t time(time_t c);
返回值:
time_t:以秒的格式返回当前时间到1970年1月1日0时0分0秒中间过了多少秒;
参数:一般填NULL,如果是一个指针,则表示返回值存储在对应的空间中;
第二个函数:获取指定的时间
1,struct tm *gmtime(const time_t *timep); 2,struct tm *localtime(const time_t *timep);
从名字可以看出来,一个是获取格林尼治时间,一个是获取本地时间;参数都是传time_t类型的指针,所以第一个函数可以说是时间操作的基础函数了;两个函数的返回值是一个结构体指针;该结构体的内容如下:
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年共有多少年 */ int tm_wday; /* 周几 (0-6, Sunday = 0) */ int tm_yday; /* 一年中的第几天 (0-365, 1 Jan = 0) */ int tm_isdst; /* 夏令时间 */ };
第三个函数:获取字符串时间
char *asctime(const struct tm *tm);
该函数的作用是以字符串的形式返回时间,它的参数时第二个函数的返回值类型的指针;
第四个函数:获取指定格式时间
size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);
函数的参数:
char *s, size_t max:前两个参数定义一个保存获取到时间的字符串数组, 一个是该数组指针,一个是保存到数组的最大字节数; const char *format:时间保存的格式: %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 %% 一个 % 符号 % const struct tm *tm:第二个参数的返回值结构体指针