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库详解