从 Windows 中的系统时钟获取当前时间(以毫秒为单位)?

新手上路,请多包涵

如何在 C++ 中获取系统时钟的当前时间(以毫秒为单位)?这是一个特定于 Windows 的应用程序。

原文由 Mark 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 885
2 个回答

要获得以 UTC 表示的时间,请在 Win32 API 中使用 GetSystemTime

 SYSTEMTIME st;
GetSystemTime(&st);

SYSTEMTIME 被记录为具有以下相关成员:

 WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;

正如 shf301 在下面有用地指出的那样, GetLocalTime (具有相同的原型)将产生一个更正到用户当前时区的时间。

您在这里有一些很好的答案,具体取决于您所追求的。如果您正在寻找一天中的 某个 时间,我的回答是最好的方法——如果您需要可靠的算术日期,请考虑 Alex 的。有 很多方法可以在 Windows 上给时间猫换皮,其中一些方法比其他方法更准确(但还没有人提到 QueryPerformanceCounter )。

原文由 Jed Smith 发布,翻译遵循 CC BY-SA 2.5 许可协议

虽然这不是问题所要求的,但值得考虑您为什么需要此信息。

如果您只想跟踪计算所需的时间或自上次用户交互以来过去的时间,请考虑使用正常运行时间(自启动以来的毫秒数),这更容易获得:GetTickCount() 或 GetTickCount64() .这就是我想做的,但我首先进入了时代兔子洞,因为这就是你在 unix 下的做法。

原文由 Al Ro 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题