如何在Windows 7中的多线程/线程安全C编程中获得MICROSECONDS(系统时间)中的高精度/接近精度时间戳(2015年)。
可能时间戳可能是年份:日:月:小时:分钟:秒:毫秒:Microsecs
答案 0 :(得分:1)
如果你正在寻找真实世界的时间戳,而不仅仅是时间间隔测量(正如你的评论所建议的那样,时间戳可以是年份:日:月:小时:分钟:秒:毫秒:Microsecs格式),然后GetSystemTimeAsFileTime()可能是你将要获得的最好的东西。它填充了一个FILETIME结构,它使用100nS的单位,尽管提供的数据的实际分辨率几乎肯定不会像FILETIME结构的单位所暗示的那样高分辨率(显然是设计者) FILETIME结构希望为将来的改进留下足够的空间!)
获得FILETIME对象后,可以使用SYSTEMTIME()将其转换为FileTimeToSystemTime对象。 SYSTEMTIME对象将时间分为年/月/日/小时/分钟/秒/毫秒字段(抱歉,没有微秒)。
另一方面,如果您的目的实际上只是为了衡量时间间隔,并且您不需要将它们与绝对的实际日期/时间相匹配,那么您有一些other options。最精确的API将是QueryPerformanceCounter(),但即便如此,我也不会将我的希望提高到太高 - Windows不是实时操作系统,它缺乏实时性能将是反映在你从中得到的结果的质量。