当前位置: 首页 > article >正文

C++中如何获取时间并格式化为字符串?

在C++中,你可以使用标准库中的 <chrono><iomanip> 头文件来获取当前时间并将其格式化为字符串。以下是一个简单的示例,展示了如何获取当前时间并将其格式化为一个可读的字符串(例如:YYYY-MM-DD HH:MM:SS)。

#include <iostream>
#include <iomanip>
#include <sstream>
#include <ctime>
#include <chrono>

std::string getCurrentTimeString() {
    // 获取当前时间点
    auto now = std::chrono::system_clock::now();
    
    // 将时间点转换为 time_t 类型(自1970年1月1日以来的秒数)
    std::time_t now_time_t = std::chrono::system_clock::to_time_t(now);
    
    // 将 time_t 转换为 tm 结构
    std::tm* now_tm = std::localtime(&now_time_t);
    
    // 使用 std::ostringstream 将 tm 结构转换为字符串
    std::ostringstream oss;
    oss << std::put_time(now_tm, "%Y-%m-%d %H:%M:%S");
    
    return oss.str();
}

int main() {
    std::string currentTime = getCurrentTimeString();
    std::cout << "Current time: " << currentTime << std::endl;
    return 0;
}

解释

  1. 获取当前时间点:使用 std::chrono::system_clock::now() 获取当前的时间点。
  2. 转换为 time_t 类型:使用 std::chrono::system_clock::to_time_t() 将时间点转换为 time_t 类型,它表示自1970年1月1日以来的秒数。
  3. 转换为 tm 结构:使用 std::localtime()time_t 类型转换为 tm 结构,这个结构包含了详细的日期和时间信息。
  4. 格式化为字符串:使用 std::ostringstreamstd::put_time()tm 结构格式化为一个字符串。"%Y-%m-%d %H:%M:%S" 是格式字符串,其中 %Y 表示四位数的年份,%m 表示两位数的月份,%d 表示两位数的日期,%H 表示两位数的小时(24小时制),%M 表示两位数的分钟,%S 表示两位数的秒。

运行这个程序将输出当前时间,格式为 YYYY-MM-DD HH:MM:SS


http://www.kler.cn/a/371151.html

相关文章:

  • 电源完整性
  • Java应用程序的测试覆盖率之设计与实现(四)-- jacoco-maven-plugin
  • gcc/g++使用
  • springboot配置websocket
  • 端口号和ip地址一样吗?区别是什么
  • 【高级IO】epoll的惊群效应
  • 【域攻防】超级黄金票据食用指南
  • 快速遍历包含合并单元格的Word表格
  • 信息安全数学基础(33)群
  • 使用DeepLabV3实现植叶病害检测
  • 蓝桥杯基本算法~~~一维/二维前缀和问题
  • 【ComfyUI】手动安装部署ComfyUI的运行环境
  • QML旋转选择器组件Tumbler
  • 第十一章 Shiro会话管理和加密
  • 《Web性能权威指南》-WebRTC-读书笔记
  • 【GL08】STM32--ADC/DAC
  • spring-boot(入门)
  • 深入探索:深度学习在时间序列预测中的强大应用与实现
  • 编程解决有趣的智力题
  • 17、电话号码的字母组合-cangjie
  • 中阳智能投资系统:量化科技引领未来投资之路
  • gbase8s之spring框架用druid中间件报语法错误
  • Linux安装es和kibana
  • git下载和配置
  • 探索Python与Excel的无缝对接:xlwings库的神秘面纱
  • GPT-Sovits-2-微调模型