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

如何在C++中从__time32_t获取毫秒级精确时间?

问题解答
  • 直接从__time32_t格式里获取毫秒是不可行的。原因很简单:__time32_t本质是32位整数,只记录从1970年1月1日0点UTC开始的秒数,根本没有毫秒级的精度信息。
  • 你当前的代码是把时间转成到秒的字符串格式,要是想输出毫秒,得先确认服务器能不能提供毫秒级的时间数据——比如有没有额外返回毫秒字段,或者返回更高精度的时间类型(比如带小数的时间戳、包含毫秒的结构体)。
  • 如果服务器能给出毫秒值,修改代码的思路很直接:在生成的时间字符串后面拼接上.xxx格式的毫秒部分就行。举个例子,假设你拿到了milliseconds变量存着0-999的毫秒数,就可以这样改:
localtime_s(&ptm, &close_time);
std::wcsftime(buffer, 32, U("%Y.%m.%d %H:%M:%S"), &ptm);
// 拼接毫秒
swprintf_s(buffer + wcslen(buffer), 32 - wcslen(buffer), U(".%03d"), milliseconds);
result[U("close_time")] = web::json::value::string(buffer);
  • 要是服务器只能返回__time32_t,那没办法得到真实的毫秒,最多只能在字符串后面补.000来表示精度到秒。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:30:47