时间格式
时间格式(协议) | 描述 |
---|---|
gg | 时期或纪元。 |
y | 不包含纪元的年份。不具有前导零。 |
yy | 不包含纪元的年份。具有前导零。 |
yyyy | 包含纪元的四位数的年份。 |
M | 月份数字。一位数的月份没有前导零。 |
MM | 月份数字。一位数的月份有一个前导零。 |
MMM | 月份的缩写名称,在AbbreviatedMonthNames中定义。 |
MMMM | 月份的完整名称,在MonthNames中定义。 |
d | 月中的某一天。一位数的日期没有前导零。 |
dd | 月中的某一天。一位数的日期有一个前导零。 |
ddd | 周中某天的缩写名称,在AbbreviatedDayNames中定义。 |
dddd | 周中某天的完整名称,在DayNames中定义。 |
h | 12小时制的小时。一位数的小时数没有前导零。 |
hh | 12小时制的小时。一位数的小时数有前导零。 |
H | 24小时制的小时。一位数的小时数没有前导零。 |
HH | 24小时制的小时。一位数的小时数有前导零。 |
m | 分钟。一位数的分钟数没有前导零。 |
mm | 分钟。一位数的分钟数有一个前导零。 |
s | 秒。一位数的秒数没有前导零。 |
ss | 秒。一位数的秒数有一个前导零。 |
f | 秒的小数精度为一位。其余数字被截断。 |
字符串与时间格式转换
C++
字符串转时间格式:
#include <iostream>
#include <ctime>
#include <string>
std::string str_time = "2022-01-01 12:00:00";
struct tm time_obj;
strptime(str_time.c_str(), "%Y-%m-%d %H:%M:%S", &time_obj);
time_t timestamp = mktime(&time_obj);
时间格式转字符串:
time_t timestamp = time(NULL);
struct tm time_obj = *localtime(×tamp);
char str_time[20];
strftime(str_time, sizeof(str_time), "%Y-%m-%d %H:%M:%S", &time_obj);
std::string result(str_time);