You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用fmt库打印含小数秒(如毫秒)的当前时间

实现亚秒级精度的时间打印(毫秒级)

问题背景

现有如下C++代码:

#include <chrono>
#include <fmt/format.h>
#include <fmt/chrono.h>
...
auto now = std::chrono::system_clock::now();
fmt::print("The time is: {:%Y-%m-%d %H:%M:%S}\n", now);

该代码输出结果为:

The time is: 2023-01-02 15:51:23

现需修改代码,实现**亚秒级精度(如毫秒)**的时间打印,期望输出格式如下:

The time is: 2023-01-02 15:51:23.753

修改方案

只需在fmt的格式字符串中添加.%3f即可实现毫秒级精度打印,其中%3f表示保留3位小数的秒数(对应毫秒精度)。

std::chrono::system_clock::now()返回的时间点默认携带亚秒级精度,fmt库会自动提取对应精度信息,无需额外转换时间点类型。

修改后的完整代码示例

#include <chrono>
#include <fmt/format.h>
#include <fmt/chrono.h>

int main() {
    auto now = std::chrono::system_clock::now();
    // 添加.%3f来打印毫秒级精度
    fmt::print("The time is: {:%Y-%m-%d %H:%M:%S.%3f}\n", now);
    return 0;
}

扩展说明

  • 若需更高精度,比如微秒,可将%3f改为%6f;纳秒则用%9f
  • 格式符中的f对应秒的小数部分,fmt会根据时间点的实际精度自动填充,不足位数补0

内容的提问来源于stack exchange,提问作者Rob N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:20:49