Winapi 如何理解IUpdateHistoryEntry的Date属性的值?

Winapi 如何理解IUpdateHistoryEntry的Date属性的值?,winapi,Winapi,我正在使用WUA(Windows Update Agent API)检查计算机上安装的更新。 我发现有趣的是Date属性值()与实际安装时间(即本地时间)有很大不同。例如,对于一个修补程序“Windows 7上Microsoft.NET Framework 3.5.1的安全更新和基于x64的系统的Windows Server 2008 R2 SP1(KB2789645)”,使用WUA API,我看到日期值='2/21/2013 11:04:30 PM',而在我的计算机上,我在事件日志中发现,它记

我正在使用WUA(Windows Update Agent API)检查计算机上安装的更新。 我发现有趣的是Date属性值()与实际安装时间(即本地时间)有很大不同。例如,对于一个修补程序“Windows 7上Microsoft.NET Framework 3.5.1的安全更新和基于x64的系统的Windows Server 2008 R2 SP1(KB2789645)”,使用WUA API,我看到日期值='2/21/2013 11:04:30 PM',而在我的计算机上,我在事件日志中发现,它记录为“2/21/2013 4:51:58 PM”。我最初认为WUA API使用UTC时间,但如果我将UTC时间更改为本地时间(我在太平洋时区),那么“2013年2月21日11:04:30 PM”(UTC)将等于“2013年2月21日3:04:30 PM”(本地),仍然远离事件日志的“2013年2月21日4:51:58 PM”

有人知道IUpdateHistoryEntry的这个日期属性的真正含义吗?根据以上msdn链接中的MS,日期属性为

属性访问类型描述 Date Read only获取应用更新的日期和时间

提前感谢你的帮助。我对这种差异感到困惑

亲切问候,


JYao

我想我发现了这个秘密。首先,IUpdateHistory的Date属性实际上使用UTC而不是本地时间。其次,我在事件日志中看到的部分内容是正确的。这里的逻辑是,如果修补程序在安装后需要重新启动,则在重新启动完成之前,不会将其记录在windows环境日志中。因此,在我的情况下,在安装这些修补程序后,我(通过弹出屏幕)被要求重新启动,但直到我完成手头的工作,我才立即重新启动,那是2013年2月21日下午4:45左右“,我的电脑又花了大约5分钟才完全启动。有趣的是,值得为您自己的问题添加一个答案并将其标记为解决方案。