我希望打印当前(本地)时间(基于说std::chrono::system_clock
),同时包括毫秒,例如12:32:45.287
。
我可以在没有毫秒的情况下完成:
std::time_t time = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
char buffer[sizeof("HH:MM:SS")];
if (std::strftime(buffer, sizeof(buffer), "%H:%M:%S", std::localtime(&time)) == 0)
std::cout << "Error formating time" << std::endl;
else std::cout << buffer << std::endl;
如果我可以获得整数毫秒,那也是好的。 (我可以使用std::localtime(&time)->tm_sec
)获得秒数
编辑我想要一个可移植的解决方案,但如果这不可行,那么可以使用Windows 10 / Visual C ++ 14.0 / Intel Compiler 16.0
答案 0 :(得分:0)
如果使用linux或unix,则可以按此时间间隔获得毫秒数。
#include <cstdio>
#include <iostream>
#include <sys/time.h>
using namespace std;
long getCurrentTime() {
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec * 1000 + tv.tv_usec / 1000;
}
int main() {
cout<<"milliseconds: "<<getCurrentTime()<<endl;
return 0;
}
答案 1 :(得分:0)
如果你想在C中移植它,那么看看便携式库正在使用什么,即Apache APR ......
https://apr.apache.org/docs/apr/2.0/group__apr__time.html
或者用C编写的移植到你想要定位的平台的应用程序,即Mysql,Lua,JVM