size_t strftime(char *buff,
size_t maxSize,
const char *format,
const struct tm *tmp)
将tmp
按照format
格式化后,放到buff
中。
char *buff
是格式化后的字符串存放的地方。
size_t maxSize
表示最多占用char *buff
的前maxSize
个字节。
const char *format
是格式化的字符串,可包含如下格式:
格式 | 说明 | en_US示例 | zh_CN示例 |
---|---|---|---|
%a | 星期几 的简称 | Wed | 三 |
%A | 星期几 的全称 | Wednesday | 星期三 |
%Y |
| 2019 | 2019 |
%y |
| 19 | 19 |
%G | 周年 | 2019 | 2019 |
%g | 周年 的后2位 | 19 | 19 |
%C | 年 的前2位 | 20 | 20 |
%m | 年 的几月 | 03 | 03 |
%b | 几月 的简称 | Mar | 3 |
%h | 等同于%b | Mar | 3 |
%B | 几月 的全称 | March | 三月 |
%d | 月 的第几天 | 3 | 3 |
%e | 月 的第几天,小于10 的数字前面补0 | 03 | 03 |
%H | 24小时制,时钟 ,2位数 | 15 | 15 |
%I | 12小时制,时钟 ,2位数 | 03 | 03 |
%M | 分钟 ,2位数 | 03 | 03 |
%S | 秒钟 ,2位数 | 03 | 03 |
%s | 从1970-00-00 00:00:00 到现在的秒数 | 1584521253 | 1584521253 |
%p | 上午和下午的标识,大写 | AM 、PM | 上午 、下午 |
%P | 上午和下午的标识,小写 | am 、pm | A 、P |
%% | 输出% | % | % |
%t | 输出tab | ||
%n | 换行 | ||
%c | 相当于%a %d/%m %H:%M:%S %Y | Wed Mar 18 14:10:52 2020 | 三 3/18 14:06:33 2020 |
%D | 相当于%m/%e/%C | 03/18/20 | 03/18/20 |
%F | 相当于%C-%m-%e | 20-18-03 | 20-18-03 |
%v | 相当于%e-%b-%Y | 18-Mar-2020 | 18- 3-2019 |
%R | 相当于%H:%M | 15:00 | 15:00 |
%T | 相当于%H:%M:%S | 15:00:23 | 15:00:23 |
%r | 相当于%I:%M:%S %p | 04:32:32 PM | 04:32:32 下午 |
struct tm
的定义:
struct tm {
int tm_sec; /* seconds [0,60] */
int tm_min; /* minutes [0,59] */
int tm_hour; /* hours [0,23]*/
int tm_mday; /* day of the month [1,31] */
int tm_mon; /* month [0,11] */
int tm_year; /* year since 1900 */
int tm_wday; /* day of the week [0,6] (Sunday =0) */
int tm_yday; /* day in the year [0,365] */
int tm_isdst; /* daylight saving time */
};
size_t
的定义:
typedef long unsigned int __darwin_size_t;
typedef __darwin_size_t size_t;
返回实际占用了buff
的大小。
#include <stdio.h>
#include <time.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "zh_CN.UTF-8");
//setlocale(LC_ALL, "en_US.UTF-8");
time_t tt = time(NULL);
struct tm *tms = localtime(&tt);
char buff[30] = {0};
strftime(buff, sizeof(buff), "%Y-%m-%d %H:%M:%S", tms);
printf("现在是当地时间:%s\n", buff);
return 0;
}
使用cc命令编译 ⤵︎
cc -o test_time test.c
运行结果如下 ⤵︎
现在是当地时间:2019-03-18 12:57:34