千家信息网

c++11多种格式时间转化为字符串的实现方法是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,c++11多种格式时间转化为字符串的实现方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.打印系统当前时间,或者将系统当前
千家信息网最后更新 2026年11月01日c++11多种格式时间转化为字符串的实现方法是什么

c++11多种格式时间转化为字符串的实现方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1.打印系统当前时间,或者将系统当前时间转化为字符串

#include #include #include #include  int main(){        //打印到标准输出        auto t = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());        std::cout  << std::put_time(std::localtime(&t), "%F %T") << std::endl;         //转为字符串        std::stringstream ss;        ss << std::put_time(std::localtime(&t), "%F %T");        std::string str = ss.str();         return 0;}

运行截图:

代码讲解:

(1)%F %T 是格式化字符串,其中%F 代表 年-月-日 的组合。%T 代表 时:分:秒的组合

%F %T 等价于 %Y-%m-%d %H:%M:%S。 更加细粒度的控制,可以自己对应组合(%Y,%m...分别对应年月日时分秒,怎么控制输出随便你)。比如现在我只需要打印 时-分 这样的格式,换成 %H - %M 即可

一般记住这几个常用的格式就够应付大多数场景了,更全面的格式请参考

(2)关于chrono::system_clock的详细讲解,前看前文

2.将time_t 类型,或者 long long 类型代表的秒数转换为字符串

有时候我们和其他的函数,甚至其他语言交互的时候,对方向你抛出一个time_t 类型的时间,或者long long类型的时间,现在需要我们转换为字符串。别慌,请看下面示例:

#include #include #include  int main(){        //从1970年1月1日00:00:00所经过的秒数        long long seconds = 1532581415;        std::time_t t(seconds);        std::cout << std::put_time(std::localtime(&t), "[%F %T]") << std::endl;        return 0;}

运行截图:

代码讲解:

【注意】: long long seconds 一定要是秒数。(如果是毫秒那就除以1000 转为秒咯,其他类似转),不然转换为std::time_t 就失败了。其他和前一个示例一样。

总结:

以前总是看别的语言 DateTime::toString("yyyy.MM.dd hh:mm:ss.zzz ddd")啥的非常方便格式化时间,现在c++ 11也可以啦,只要自己稍微封装下就好了。

更多的格式化字符串及意义:

转换
说明符
解释使用的域
%写字面的 % 。完整转换指定必须是 %% 。
n
(C++11)
写换行符
t
(C++11)
写水平制表符
年
Y以 4 位十进制数写年。tm_year
EY
(C++11)
以替用方式写年。例如在 ja_JP 本地环境中,以"平成23年"取代"2011年"。tm_year
y写年的末 2 位十进制数(范围[00,99])。tm_year
Oy
(C++11)
以替用数字系统写年的末 2 位数字。例如在 ja_JP 本地环境中以"十一"取代"11"。tm_year
Ey
(C++11)
将年写作从本地环境的替用时期 %EC 的偏移(本地环境依赖)。tm_year
C
(C++11)
写年的首 2 位十进制数(范围 [00,99] )。tm_year
EC
(C++11)
以本地环境的替用表示写年份基底(时期),例如 ja_JP 中的"平成"。tm_year
G
(C++11)
写基于 ISO 8601 的年,即是包含指定星期的年份。

IS0 8601 中星期以星期一开始,而且一年的首星期必须满足下列要求:

  • 包含 1 月 4 日

  • 包含一年的首个星期四

tm_year, tm_wday, tm_yday
g
(C++11)
写基于 ISO 8601 的年,即是包含指定星期年份,的后 2 位数(范围 [00,99] )。

IS0 8601 中星期以星期一开始,而且一年的首星期必须满足下列要求:

  • 包含 1 月 4 日

  • 包含一年的首个星期四

tm_year, tm_wday, tm_yday
月
b写缩略月名,例如 Oct (本地环境依赖)。tm_mon
h
(C++11)
与 b 同意。tm_mon
B写完整月名,例如 October (本地环境依赖)。tm_mon
m将月写作十进制数(范围 [01,12] )。tm_mon
Om
(C++11)
以替用数字系统写月。例如 ja_JP 本地环境中"十二"取代"12"。tm_mon
星期
U以十进制数写年的星期(星期日是星期的首日)(范围 [00,53] )。tm_year, tm_wday, tm_yday
OU
(C++11)
以替用数值系统写如同用 %U 的年的星期。例如"五十二"在 ja_JP 本地环境中取代"52"。tm_year, tm_wday, tm_yday
W以十进制数写年的星期(星期一是星期的首日)(范围 [00,53] )。tm_year, tm_wday, tm_yday
OW
(C++11)
以替用数值系统写如同用 %W 的年的第星期。例如"五十二"在 ja_JP 本地环境中取代"52"。tm_year, tm_wday, tm_yday
V
(C++11)
写 ISO 8601 的年的星期(范围[00,53])。

IS0 8601 中星期以星期一开始,而且一年的首星期必须满足下列要求:

  • 包含 1 月 4 日

  • 包含一年的首个星期四

tm_year, tm_wday, tm_yday
OV
(C++11)
以替用数值系统写如同用 %V 的年的星期。例如"五十二"在 ja_JP 本地环境中取代"52"。tm_year, tm_wday, tm_yday
年/月之日
j以十进制数写年的第几日(范围 [001,366] )。tm_yday
d以十进制数写月的第几日(范围 [01,31] )。tm_mday
Od
(C++11)
以替用数字系统写零基的月的第几日。例如 ja_JP 本地环境中"二十七"取代" 27 "。

单字符前加空格。

tm_mday
e
(C++11)
以十进制数写月的第几日(范围[01,31])。

单数字前加空格。

tm_mday
Oe
(C++11)
以替用数字系统写一基的月的第几日。例如 ja_JP 本地环境中"二十七"取代"27"。

单字符前加空格。

tm_mday
星期之日
a写缩略的星期日期名,例如 Fri (本地环境依赖)。tm_wday
A写完整的星期日期名,例如 Friday (本地环境依赖)。tm_wday
w以十进制数写星期日期,其中星期日是 0 (范围 [0-6] )。tm_wday
Ow
(C++11)
用替用数字系统写星期日期,其中星期日是 0 。例如 ja_JP 本地环境中"二"取代"2"。tm_wday
u
(C++11)
十进制数写星期日期,其中星期一是 1 ( ISO 8601 格式)(范围 [1-7] )。tm_wday
Ou
(C++11)
用替用数字系统写星期日期,其中星期一是 1 。例如 ja_JP 本地环境中"二"取代"2"。tm_wday
时、分、秒
H以十进制数写时, 24 小时制(范围 [00-23] )。tm_hour
OH
(C++11)
以替用数字系统写 24 小时制的时。例如 ja_JP 本地环境中"十八"取代"18"。tm_hour
I以十进制数写时, 12 小时制(范围 [01,12] )。tm_hour
OI
(C++11)
以替用数字系统写 12 小时制的时。例如 ja_JP 本地环境中"六"取代"6"。tm_hour
M以十进制数写分(范围 [00,59] )。tm_min
OM
(C++11)
以替用数字系统写分。例如 ja_JP 本地环境中"二十五"取代"25"。tm_min
S以十进制数写秒(范围 [00,60] )。tm_sec
OS
(C++11)
以替用数字系统写秒。例如 ja_JP 本地环境中"二十四"取代"24"。tm_sec
其他
c写标准日期时间字符串。例如 Sun Oct 17 04:41:13 2010 (本地环境依赖)。全部
Ec
(C++11)
写替用日期时间字符串。例如 ja_JP 本地环境中"平成23年"取代"2011年"。全部
x写本地化的日期表示(本地环境依赖)。全部
Ex
(C++11)
写替用日期表示。例如 ja_JP 本地环境中"平成23年"取代"2011年"。全部
X写本地化的时间表示,例如 18:40:20 或 6:40:20 PM (本地环境依赖)。全部
EX
(C++11)
写替用时间表示(本地环境依赖)。全部
D
(C++11)
等价于"%m/%d/%y"。tm_mon, tm_mday, tm_year
F
(C++11)
等价于"%Y-%m-%d"( ISO 8601 日期格式)。tm_mon, tm_mday, tm_year
r
(C++11)
写本地化的 12 小时制时间(本地环境依赖)。tm_hour, tm_min, tm_sec
R
(C++11)
等价于"%H:%M"。tm_hour, tm_min
T
(C++11)
等价于"%H:%M:%S"( ISO 8601 时间格式)。tm_hour, tm_min, tm_sec
p写本地化的 a.m. 或 p.m. (本地环境依赖)。tm_hour
z
(C++11)
以 ISO 8601 格式(例如 -0430 )写距 UTC 的偏移,或者倘若时区信息不可用则不写字符。tm_isdst
Z写依赖本地环境的时区名或缩写,或者若时区信息不可用则不写字符。tm_isdst

关于c++11多种格式时间转化为字符串的实现方法是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

星期 环境 范围 十进制 系统 十进 字符 时间 格式 数字 日期 字符串 小时 等价 类型 平成 方法 代表 年份 数值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北京路客互联网科技有限公司 新华互联网科技学校 科技企业和互联网企业 互联网扶贫科技 科技与互联网发展 碳银互联网科技 亿账通互联网科技 中正互联网科技招聘 互联网公司会议桌创意科技软装饰 哈尔滨新华互联网科技学院 互联网数据科技专业 南通创西澳互联网科技有限公司 中国互联网有什么科技 上海互联网科技公司ppt 东营紫格互联网科技 抖集互联网科技技术咨询 云鲸互联网络科技有限公司 银川新华互联网科技学校原画 互联网对科技影响 陕西彩京云互联网科技有限公司 哈尔滨大商圈互联网科技有限公司 紫鲸互联网科技 智慧科技互联网 互联网科技公司介绍 哈尔滨秒房互联网科技有限公司 宁夏众和广鑫互联网科技有限公司 重庆互联网医院沙龙医盟信息科技 互联网科技公司有风险吗 陕西九四连强互联网科技有限公司 互联网科技企业文化
0