3

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

谢谢

4

2 回答 2

6

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

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

在一个高度人为的示例中,您准确地更改时区和当前时间以补偿时区差异,GetLocalTime() 的值将保持不变,但 GetSystemTime() 将改变。

这忽略了任何一个函数的输出往往每毫秒都在变化的事实。上面段落中的“改变”是指“抛弃正常的时间流逝”。

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

于 2012-06-15T18:13:50.840 回答
0

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

于 2012-06-15T18:06:34.013 回答