C语言time.h时间格式

头文件:#include

基础知识:

  日历时间,即机器时,1970年之后的秒数

   UTC,GMT,世界标准时间(经度0),中国是UTC+8

epoch:时间点,当前机器时

clock tick:时钟计时单元,一个时钟计时单元的时间长短是由CPU控制的。一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位(单位为毫秒)

计时:clock_t clock( void ),返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数;CLOCKS_PER_SEC,它表示一秒钟会有多少个时钟计时单元。clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间。

clock_t是long型


类型:

time_t长整型long

分解时间

struct  tm{
       int tm_sec;
       int tm_min;
       int tm_hour;
       int tm_mday;
       int tm_mon;
       int tm_year;
       int tm_wday;
       int tm_yday;
       int tm_isdst;
     }; 


函数


time函数:time_t time(time_t *t);得到现在的机器时(秒数)

获得日期和时间:

 gmtime函数 struct tm *gmtime(time_t  *time) ,从机器时得到 tm结构的世界时(UTC或GMT)(tm_year减去了1990)

mktime函数:time_t mktime(struct tm * timeptr);gmtime函数的逆函数,把分解时间转化为日历时间

localtime函数:struct tm *localtime(const time_t *timer) ,从机器时得到本地时间(北京UTC-8)(tm_year减去了1990)

获取字符串时间要先调用gmtime或localtime返回tm格式再调用该函数转换为char*类型

ctime函数:char *ctime(long time)  从机器时得到世界时,字符串格式:星期,月,日,小时:分:秒,年
asctime 函数:char* asctime(struct tm * ptr) :从世界时得到机器时,输入参数从localtime()或者gmtime()得到

 difftime函数:double difftime(time_t time2, time_t time1) ,得到两次机器时时间差

自定义时间格式:时间格式控制函数(strftime将一个tm结构格式化为一个字符串,strptime则是将一个字符串格式化为一个tm结构)字符串和结构体tm类型之间的转换

strftime函数:有些类似于sprintf(),按照格式字符串 format ,转换来自给定的日历时间 time 的日期和时间信息,为空终止多字节字符串 str 。最多写入 count 字节

同样要通过localtime或gmtime函数返回tm结构体

size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

strptime函数,是strftime的逆函数,将一个字符串格式化为一个tm结构。返回的是一个字符指针,指向转换过程处理的最后一个字符后面的那个字符。

char *strptime(const char *buf,const char *format,struct tm *timeptr)

函数转换关系如下
C语言time.h时间格式_第1张图片

你可能感兴趣的:(C++语法)