如何在Windows7的多线程/线程安全C编程中获得以微秒(系统时间)为单位的高精度/接近精度时间戳( 2015)。
可能时间戳可以是Year:Day:Month:Hour:Mins:Secs:Millisecs:Microsecs
发布于 2015-04-10 13:44:05
如果您正在寻找真实的时间戳,而不仅仅是时间间隔度量(正如您的评论所建议的,时间戳可能是Year:Day:Month:Hour:Mins:Secs:Millisecs:Microsecs格式的),那么GetSystemTimeAsFileTime可能是您将获得的最好的东西。它填充了一个FILETIME结构,该结构使用100nS的单位,尽管所提供的数据的实际分辨率几乎肯定不会像FILETIME结构的单元所暗示的那样高分辨率(显然,FILETIME结构的设计者希望为将来的改进留下很大的空间!)
一旦拥有了FILETIME对象,就可以使用FileTimeToSystemTime将其转换为SYSTEMTIME对象。SYSTEMTIME对象将超时时间分解为year/month/day/hours/minutes/seconds/milliseconds字段(对不起,没有微秒)。
另一方面,如果您的目的实际上只是测量时间间隔,并且您不需要将它们与真实世界的绝对日期/时间进行匹配,那么您就有了一些other options。最精确的API应该是QueryPerformanceCounter,但即便如此,我也不会对它寄予太高的期望-- Windows不是一个实时操作系统,它缺乏实时性能将反映在您从它获得的结果的质量上。
https://stackoverflow.com/questions/29553146
复制相似问题