项目

一般

简介

行为

功能 #442

打开

std::put_time

李立奎4 个月 之前添加. 更新于 4 个月 之前.

状态:
新建
优先级:
普通
指派给:
-
开始日期:
2025-09-20
计划完成日期:
% 完成:

0%

预期时间:
#2:

描述

std::put_time 是 C++ 标准库 <iomanip> 中的一个 I/O 操纵符(manipulator),用于将 std::tm 结构体中的时间信息格式化为字符串,并插入到输出流(如 std::cout)中。


基本语法

std::put_time(const std::tm* tmb, const char* format);
  • tmb:指向 std::tm 的指针,表示要格式化的时间。
  • format:格式字符串,类似于 strftime 的格式。

示例代码

#include <iostream>
#include <iomanip>
#include <ctime>

int main() {
    std::time_t t = std::time(nullptr);
    std::tm tm = *std::localtime(&t);

    std::cout << "当前时间: " << std::put_time(&tm, "%Y-%m-%d %H:%M:%S") << std::endl;

    return 0;
}

常用格式符(与 strftime 相同)

格式符 含义 示例输出
%Y 四位年份 2025
%m 两位月份 09
%d 两位日期 19
%H 24小时制小时 14
%M 分钟 30
%S 45

注意事项

  • 需要包含头文件:<iomanip><ctime>
  • 只适用于输出流(如 std::coutstd::ostringstream),不能用于字符串直接构造
  • 如果你需要字符串,可以用 std::ostringstream
std::ostringstream oss;
oss << std::put_time(&tm, "%Y-%m-%d");
std::string date = oss.str();

如果你有具体的使用场景(比如想格式化毫秒、UTC 时间、跨平台兼容性等),可以继续问我。

行为

导出 Atom PDF