You need to enable JavaScript to run this app. C++用time()计算时间差为何仅返回整秒,没有毫秒部分?
优惠活动
大模型
产品
解决方案
定价
更多

C++用time()计算时间差为何仅返回整秒,没有毫秒部分?

原因说明

你调用的time()函数在标准实现中返回的time_t类型精度仅为秒级,仅记录从Unix纪元(1970-01-01 00:00:00 UTC)到当前时间的整秒计数,本身就不包含毫秒、微秒这类更小单位的时间信息。

  • 你调用的sleep(1)会让进程至少挂起1秒,实际挂起时长通常略大于1秒,但因为前后两次time()调用取到的都是整秒值,差值自然是规整的1。
  • 如果需要获取更高精度的时间差,可以使用C++11起提供的<chrono>标准库的高精度时钟,示例实现如下:
#include <iostream>
#include <chrono>
#include <unistd.h>

int main() {
    auto start = std::chrono::high_resolution_clock::now();
    sleep(1);
    auto end = std::chrono::high_resolution_clock::now();
    // 转成毫秒单位输出
    auto diff = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
    std::cout << diff.count() << std::endl;
    return 0;
}
  • 上述代码运行后输出结果通常略大于1000,可以体现出更高精度的时间差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 18:03:04