c++ 11 多种格式时间转化为字符串
C++ 时间 字符串 11 格式 多种 转化
2023-09-14 09:07:07 时间
1.打印系统当前时间,或者将系统当前时间转化为字符串
#include <iostream>
#include <sstream>
#include <iomanip>
#include <chrono>
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 <iostream>
#include <iomanip>
#include <chrono>
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也可以啦,只要自己稍微封装下就好了。
相关文章
- C++之日期时间使用
- visual C++游戏绘图之透明效果制作原理
- [工程备案]linux基本命令以及C和C++编程
- c++ 使用asmjit
- Python 零基础快速上手(与C/C++对比)
- C语言/C++基础之是蛇你就贪起来
- 买卖股票的最佳时机(C++)
- [手游新项目历程]-53-c,c++中时间戳与标准时间间的相互转换
- openssl AES-cbc 加密 通过C++实现
- C++ unique
- C++0x新特性
- 嵌入式linux开发,C/C++获取文件相关属性,获取文件的三个时间
- C++之lock_guard和unique_lock自动加解锁区别(九十三)
- C++之时间戳耗时对比(九十一)
- VC++时间函数的使用(附源码)
- Dlib——C++机器学习库,有传统机器学习的,也有深度学习的
- PAT 1089 Insert or Merge C++版
- 时间类-输入和输出(C++版本)
- 机器人C++库(6)Robotics Library 例程三之正逆运动学计算
- C++基础知识要点--字符串、向量和数组 (Primer C++ 第五版 · 阅读笔记)
- 刷题笔记|计算两个年份间某一日期是周末的天数,发现ctime库对象有时间范围(C++|Python )
- 【跟学C++】C++的函数(Study6)