【C++】 yyyy-MM-dd HH:mm:ss 时间格式 时间戳 全面解读超详细

时间格式

时间格式(协议) 描述
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(&timestamp);
char str_time[20];
strftime(str_time, sizeof(str_time), "%Y-%m-%d %H:%M:%S", &time_obj);
std::string result(str_time);

猜你喜欢

转载自blog.csdn.net/gao511147456/article/details/129304403