系统时间,当地时间,文件时间和正常时间

All*_*ang 2 c++ windows time systemtime filetime

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

谢谢

Sev*_*yev 5

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

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

在一个非常人为的例子中,您可以精确地更改时区和当前时间以补偿时区差异,GetLocalTime()的值将保留,但GetSystemTime()将更改.

这就折扣了这两种功能的输出都会随着每毫秒的变化而变化的事实.通过上面段落中的"改变",我的意思是"抛弃经常的时间流逝".

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