localtime函数和strftime函数

localtime函数

功能:

把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为本地时间,而gmtime函数转换后的时间没有经过时区变换,是UTC时间 。

用法:

#include <time.h>

struct tm *localtime(const time_t *clock);

返回值:

指向tm 结构体的指针, tm结构体是time.h中定义的用于分别存储时间的各个量(年月日等)的结构体.

strftime函数

功能:

根据区域设置,格式化本地时间/日期,功能就是将时间格式化

用法:

#include <time.h>

size_t strftime(char * strDest,  size_t maxszie, const char * format,  const struct tm*  timeptr);

示例如下:

#include <stdio.h>
#include <unistd.h>
#include <time.h>

int main(void)
{
   char ct[80];
   time_t  tt;
   struct tm *tblock;

   tt = time(NULL);
   tblock = localtime(&tt);

   printf("Local time is %s ", asctime(tblock));

   strftime(ct, sizeof(ct), "%Y-%m-%d %H:%M:%S", tblock);
   printf("now is %s ", ct);

   return 0;
}

结果:

备注:

strftime函数常使用的formate参数:

specifierReplaced byExample
%a Abbreviated weekday name * Thu
%A Full weekday name * Thursday
%b Abbreviated month name * Aug
%B Full month name * August
%c Date and time representation * Thu Aug 23 14:55:02 2001
%d Day of the month (01-31) 23
%H Hour in 24h format (00-23) 14
%I Hour in 12h format (01-12) 02
%j Day of the year (001-366) 235
%m Month as a decimal number (01-12) 08
%M Minute (00-59) 55
%p AM or PM designation PM
%S Second (00-61) 02
%U Week number with the first Sunday as the first day of week one (00-53) 33
%w Weekday as a decimal number with Sunday as 0 (0-6) 4
%W Week number with the first Monday as the first day of week one (00-53) 34
%x Date representation * 08/23/01
%X Time representation * 14:55:02
%y Year, last two digits (00-99) 01
%Y Year 2001
%Z Timezone name or abbreviation CDT
%% % sign %
原文地址:https://www.cnblogs.com/rohens-hbg/p/7921344.html