C++中时间转换

 

所需头文件

#include <chrono>
#include <time.h>

 

        auto now = std::chrono::system_clock::now();
        std::time_t now_c = std::chrono::system_clock::to_time_t(now);
        //auto time = ctime(&now_c);
        auto time = std::put_time(std::localtime(&now_c), "%F %T") ;
        wxString time_string = wxString::Format("%d-%d-%d_%d-%d-%d",
        time._Tptr->tm_year + 1900,time._Tptr->tm_mon + 1,time._Tptr->tm_mday,time._Tptr->tm_hour, time._Tptr->tm_min, time._Tptr->tm_sec);

 

std::time_t t;
struct tm *p;
t=std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
p = localtime(&t);
char s[64] = {0};
strftime(s,64,"%Y-%m-%d %H:%M:%S",p);

 

strftime
https://baike.baidu.com/item/strftime/9569073?fr=aladdin
size_t strftime(
char *strDest,
size_t maxsize,
const char *format,
const  struct tm *timeptr
);
%a 星期几的简写
%A 星期几的全称
%b 月份的简写
%B 月份的全称
%c 标准的日期的时间串
%C 年份的前两位数字
%d 十进制表示的每月的第几天
%D 月/天/%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-%g 年份的后两位数字,使用基于周的年
%G 年份,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从1到7,星期一为1)
%U 第年的第几周,把星期日作为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号
语法
strftime(format,timestamp)参数 描述
format 可选。规定如何返回结果。
timestamp 可选。
提示和注释
例子
<?php
echo(strftime("%b %d %Y %X", mktime(20,0,0,12,31,98)));
echo(gmstrftime("%b %d %Y %X", mktime(20,0,0,12,31,98)));
//输出当前日期、时间和时区
?>输出:
Dec 31 1998 20:00:00
Dec 31 1998 19:00:00
It is Wed on Jan 25, 2006, 11:32:10 time zone: W. Europe Standard Time
参数

 

 

C++11 std::chrono库详解

 

posted @ 2019-05-14 11:42  狂奔~  阅读(2278)  评论(0编辑  收藏  举报