C++中时间转换

时间:2024-10-28 16:34:56

所需头文件

#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 + ,time._Tptr->tm_mon + ,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[] = {};
strftime(s,,"%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(,,,,,)));
echo(gmstrftime("%b %d %Y %X", mktime(,,,,,)));
//输出当前日期、时间和时区
?>输出:
Dec ::
Dec ::
It is Wed on Jan , , :: time zone: W. Europe Standard Time

参数

C++11 std::chrono库详解