C 输出当前时间的几种方式

来源:互联网 发布:飞行员夹克搭配男 知乎 编辑:程序博客网 时间:2024/06/05 15:51

C "time.h"库中定义了几个方便我们调用打印时间的函数

一、time_t time( time_t* )
    time()可以获取当前的时间,但是这个时间是以秒数给出的,如果参数为NULL,那么它就将时间返回,如果不为NULL,那就将时间保存在给定的地址中
二、clock_t clock( void )
    clock()函数计算程序从开始执行到指定位置CPU所用的时间,但不是足够精确。如果要精确的时间,可以通过两个时刻相减来计算,然后将得到的值/CLOCKS_PER_SEC的到秒数
三、char* ctime( time_t const *timeVal )
    如果ctime()函数接收了一个time_t类型的参数,它将返回一个固定格式的字符串来描述这个时间
四、double difftime( time_t time1, time_t time2 )
    difftime()函数可以计算两个时刻的时间差,并以double类型的形式返回
五、struct tm *gmtime( time_t const *timeVal )
    struct tm *localtime( time_const *timeVal )
    这两个函数都可以将给定的时间转化为一个结构体指针返回,gmtime将时间转化为UTC(世界协调时间 
六、char *asctime( struct tm const *tm_ptr )
    asctime()函数将给定的struct tm 结构体转化成固定格式的字符串并返回指向这个字符串的指针
七、size_t strftime( char *string, size_t maxsize, char const *format, struct tm const *tm_ptr )
    strftime()和asctime()相似,但是它可以按给定的格式输出,比asctime()灵活

下面是几种打印时间的方法:

/*time(NULL)获取当前时间(以s表示),localtime(time_t* )将time_t转化为一个结构体,asctime(struct tm* )将struct tm转化为一个字符串返回*/time_t currentTm = time(NULL);puts(asctime(localtime(&currentTm)));
二//ctime(time_t* )将time_t转化为一个字符串返回time_t currentTm = time(NULL);fputs(ctime(&currentTm), stdout);
三/*使用函数size_t tm* strftime(char *buffer, size_t sizeInBytes, char *formatStr, struct tm *_Tm)按给定的格式输出*/char strTm[50] = { 0 };/*struct tm structTm;*/time_t currentTm;time(&currentTm);/*localtime_s(&structTm, &currentTm);strftime(strTm, sizeof(strTm), "%x %X", &structTm);*/strftime(strTm, sizeof(strTm), "%x %X", localtime(&currentTm));puts(strTm);