在Qt中获得毫秒精度的当前时间
Getting milliseconds accuracy current time in Qt
关于QTime::currentTime()
的Qt文档说:
注意,准确性取决于底层的准确性操作系统;不是所有的系统都提供1毫秒的精度。
但是有没有办法在windows 7中以毫秒精度获得这个时间?
您可以使用QDateTime
类并将当前时间转换为适当的格式:
QDateTime::currentDateTime().toString("yyyy/MM/dd hh:mm:ss,zzz")
其中'z'对应毫秒级精度
可以使用C/c++中time.h头文件提供的功能。
#include <time.h>
clock_t start, end;
double cpu_time_used;
int main()
{
start = clock();
/* Do the work. */
end = clock();
cpu_time_used = ((double)(end-start)/ CLOCKS_PER_SEC);
}
计时器分辨率在不同的平台上可能会有所不同,读数可能不准确。如果你需要在Windows 7上获得高分辨率,准确的时间戳,它提供了QPC API:
https://msdn.microsoft.com/en-us/library/windows/desktop/dn553408%28v=vs.85%29.aspx声称GetSystemTimePreciseAsFileTime
提供了<1us分辨率的系统时间。
但这只是关于准确的时间戳。如果你真的需要在1毫秒的延迟时间内做一些事情(比如处理一个事件),你需要一个实时操作系统,而不是一个桌面的烂货。
一种常见的方法是将你正在做的事情按比例放大,连续做10-100次,这样你就可以通过将结果除以10-100来获得更准确的时间读数。
但是获得毫秒级精确的时间读数几乎是无用的,因为你没有100%的cpu时间,这意味着如果操作系统在你执行操作时给另一个进程计算时间,那么你的读数将有比1毫秒更大的差异。
相关文章:
- 提升,以分钟精度获得 UTC 时间
- GLUT 无法获得米利斯精度的时间
- 使用C++中的put_time以毫秒精度获取当前时间
- 以毫秒级精度对日期和时间进行操作
- 以小于一毫秒的精度计算时间的功能
- 执行时间:与Java BigInteger相比,提高了多精度
- 如何在双精度内存储时间
- 将当前时间 simTime.dbl() 与以前存储的双精度值进行比较并不总是给出正确的答案......为什么?
- 有没有办法在Windows上测量时间到微秒的精度
- 以微秒精度获取时间点
- c++11以微秒精度获取当前时间
- QT以微秒精度解析日期的时间戳
- 如何获得高分辨率时间戳作为双精度
- 在C++中可移植精度良好的双时间戳
- 用时间戳格式化亚秒精度时间
- 如何在当前时间的打印输出中获得更高的精度(几分之一秒)
- 在Qt中获得毫秒精度的当前时间
- c++和Sqlite3:如何以毫秒精度存储日期/时间
- 如何获得比Windows XP上的计时器滴答(15毫秒)更高精度的时间
- 与PostgreSQL一起工作时,SOCI库中的高精度时间戳