我需要从计时器获取毫秒数
// get timer part
time_t timer = time(NULL);
struct tm now = *localtime( &timer );
char timestamp[256];
// format date time
strftime(timestamp, sizeof(timestamp), "%Y-%m-%d_%H.%M.%S", &now);
我想在 C# 中变成这样:
DateTime.Now.ToString("yyyy-MM-dd_HH.mm.ss.ff")
我尝试使用 %f 或 %F 但它确实适用于 C++。如何从 tm 获得毫秒的 %f?
最佳答案
#include <chrono>
typedef std::chrono::system_clock Clock;
auto now = Clock::now();
auto seconds = std::chrono::time_point_cast<std::chrono::seconds>(now);
auto fraction = now - seconds;
time_t cnow = Clock::to_time_t(now);
然后您可以以秒精度打印 time_t,然后打印分数代表的任何内容。可能是毫秒、微秒或其他。具体获取毫秒数:
auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(fraction);
std::cout << milliseconds.count() << '\n';
关于c++ - 获取毫秒部分时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10654258/