所有的unix,包括linux,以1970年1月1日午夜(0点)为起点。
linux系统中所有的时间都以从那时起经过的秒数来衡量。
时间类型:time_t
#include <time.h>
time_t time(time_t *tloc);
struct tm* gmtime(const time_t *timeval);
代码:
time_t tim=time(NULL);
struct tm * tm_ptr=gmtime(&tim);
printf("week: %d\n",tm_ptr->tm_wday);
解释: gmtime按GMT返回时间(现在GMT被称为世界标准时间或UTC)
linux这样做是为了同步全球各地的所有程序和系统。不同时区同一时刻
创建的文件都会有相同的创建时间。
要看当地时间,使用localtime函数
struct tm * localtime(const time_t *timeval);
除了它返回的结构中包含的值已根据当地时区和是否采用夏令时做了调整外,
其他与gmtime相同。
要把已分解出来的tm结构再转换为原始的time_t时间,可以使用mktime函数
asctime和ctime得到更友好的时间和日期表示:
char* asctime(const struct tm * timeptr);
char *ctime(const time_t *timeval);
格式化时间输出
size_t strftime(char *s, size_t max, const char *format,
const struct tm *tm);
char *strptime(const char *s, const char *format, struct tm *tm);