使用C++在Windows中获取时区

mus*_*afa 6 c++ linux windows timezone

我想同步Windows和Linux时钟.Windows获取其系统时钟(使用GetSystemTimeAsFileTime函数)并将其发送到Linux.然后,Linux相应地设置其时钟(使用settimeofday函数).

我还需要传输Windows的时区,并将其转换为Linux标准.如何在C++中获取Windows的时区?

祝福,穆斯塔法

Del*_*ani 9

GetTimeZoneInformation可能就是你要找的东西.


mza*_*ora 5

即使您没有同步到标准时间,而是同步到机器之间的时间,您也应该使用 NTP。

NTP 是一个成熟、强大的协议,它解决了您将要发现或已经发现的所有问题:发现、通信传输、延迟和抖动、时区差异、管理漂移,因此您不会混淆其他进程共享同一台机器,实际正确设置时间,权限等。

只需在你想作为主站的机器上设置一个NTP服务器,在另一台机器上设置NTP客户端,查询主站。简单无痛。

我已经有一段时间没有设置 NTP 服务器了;我假设您可以使用操作系统标配的 NTP 实用程序以最少的配置完成这项工作,只要您对这些设备具有管理员权限。