系统时间、本地时间、文件时间和正常时间



只是想确定一件事。
在Windows机器(桌面系统或Windows Phone等设备)中,如果用户更改显示时间(可能调整时区,或者只是更改控制面板中的日期/时间),也会更改SYSTEMTIMEFILETIME。如果用户更改显示时间,将更改什么?

谢谢

首先,SYSTEMTIME 和 FILETIME 只是数据结构。他们不会以任何有意义的方式"改变"。

有两个函数返回 SYSTEMTIME:GetSystemTime() 和 GetLocalTime()。第一个返回UTC时间(大致返回英格兰格林威治的时间),第二个返回当地时区的时间。如果你只是更改时区,GetLocalTime() 的输出会改变,但 GetSystemTime() 的输出不会。如果您更改时间但不更改时区,则两者都会更改。

在一个非常人为的示例中,您完全更改时区和当前时间以补偿时区差异,GetLocalTime() 的值将保留,但 GetSystemTime() 将更改。

这忽略了这样一个事实,即任一函数的输出往往每毫秒都在变化。我所说的上述段落中的"变化"是指"摆脱时间的正常流逝"。

有一个函数返回 FILETIME:GetSystemTimeAsFileTime()。它的输出很自然地遵循 GetSystemTime() 的输出。

据我所知,除非您专门检查其他内容,否则"显示时间"始终是系统在桌面上返回的内容。这在移动环境中可能有所不同,因为时间更重要,并且他们有更稳定的检查方法。

最新更新