C++11日期获取与输出

代码如下:

#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;
}

输出: 

 

输出格式化参数列表

std::put_time()函数 -C++标准库教程™

格式都以百分比()符号开头,如下所示 -

说明符替换示例
%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
%DMM/DD/YY日期的简写,相当于%m/%d/%y08/23/19
%e月份中的某日,空格填充(1-31)23
%FYYYY-MM-DD日期的简写,相当于%Y-%m-%d
%g基于周的年份,后两位数字(00-99)01
%G一年中周2001
%h月份名称的缩写(与%b相同)Aug
%H24小时格式(00-23)14
%I12小时格式(01-12)02
%j一年中的某日(001-366)235
%m月份的十进制数(01-12)08
%M分钟(00-59)56
%n新行字符('/n'
%p指定AM或PMPM
%r12小时时钟时间02:55:02 pm
%R24小时HH:MM时间,相当于%H:%M14:51
%S秒(00-61)02
%t水平制表符(’/t’)
%TISO 8601时间格式 (HH:MM:SS),相当于%H:%M:%S
%uISO 8601工作日,星期一的数字为11-74
%U周数,以第一个星期日为第一周的第一天(00-53)33
%VISO 8601周编号(00-53)34
%w工作日,使用十进制数,星期日为00-64
%W周数,第一个星期一作为第一周的第一天(00-53)
%x日期的表示08/23/01
%X时间的表示14:55:02
%y年份,最后两位数字(00-99)01
%Y年份,四位数字2001
%zISO 8601偏离UTC在时区(1分钟=1,1小时=100)+100
%Z时区名称或缩写CDT
%%%符号%

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/cpp_standard_library/cpp_put_time.html
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C++程序员Carea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值