代码如下:
#include <iostream>
#include <sstream>
#include <ctime>
#include <iomanip>
#include <chrono>
using namespace std;
int main()
{
using namespace std::chrono;
std::time_t tt = system_clock::to_time_t(system_clock::now());
auto microsecond = duration_cast<microseconds>(system_clock::now().time_since_epoch()).count() % 1000000;
struct std::tm valtm;
localtime_s(&valtm, &tt);
std::stringstream ss;
ss << std::put_time(&valtm, "%F %X")<<" "<<microsecond/1000 <<" "<<microsecond;//2021-03-16 12:37:38 星期2
cout << ss.str();
return 0;
}
输出:
输出格式化参数列表:
格式都以百分比(%
)符号开头,如下所示 -
说明符 | 替换 | 示例 |
---|---|---|
%a | 工作日名称的缩写 * | Thu |
%A | 完整工作日名称 * | Thursday |
%b | 月份名称缩写 * | Aug |
%B | 完整月份名称 * | August |
%c | 日期和时间表示 | Thu Aug 23 14:55:02 2019 |
%C | 年份除以100,并截断为整数(00-99) | 20 |
%d | 月份中的某一天,用零填充(01-31) | 23 |
%D | MM/DD/YY日期的简写,相当于%m/%d/%y | 08/23/19 |
%e | 月份中的某日,空格填充(1-31) | 23 |
%F | YYYY-MM-DD日期的简写,相当于%Y-%m-%d | |
%g | 基于周的年份,后两位数字(00-99) | 01 |
%G | 一年中周 | 2001 |
%h | 月份名称的缩写(与%b相同) | Aug |
%H | 24小时格式(00-23) | 14 |
%I | 12小时格式(01-12) | 02 |
%j | 一年中的某日(001-366) | 235 |
%m | 月份的十进制数(01-12) | 08 |
%M | 分钟(00-59) | 56 |
%n | 新行字符('/n' ) | |
%p | 指定AM或PM | PM |
%r | 12小时时钟时间 | 02:55:02 pm |
%R | 24小时HH:MM 时间,相当于%H:%M | 14:51 |
%S | 秒(00-61) | 02 |
%t | 水平制表符(’/t’) | |
%T | ISO 8601时间格式 (HH:MM:SS ),相当于%H:%M:%S | |
%u | ISO 8601工作日,星期一的数字为1 (1-7 ) | 4 |
%U | 周数,以第一个星期日为第一周的第一天(00-53) | 33 |
%V | ISO 8601周编号(00-53) | 34 |
%w | 工作日,使用十进制数,星期日为0 (0-6 ) | 4 |
%W | 周数,第一个星期一作为第一周的第一天(00-53) | |
%x | 日期的表示 | 08/23/01 |
%X | 时间的表示 | 14:55:02 |
%y | 年份,最后两位数字(00-99) | 01 |
%Y | 年份,四位数字 | 2001 |
%z | ISO 8601偏离UTC在时区(1分钟=1,1小时=100) | +100 |
%Z | 时区名称或缩写 | CDT |
%% | %符号 | % |
//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/cpp_standard_library/cpp_put_time.html