哇,我以为我知道我的 C++,但这很奇怪
这个函数返回一个无符号整数,所以我认为这意味着我永远不会返回一个负数,对吧?
该函数确定您比 UTC 提前或落后多少小时。所以对我来说,我在澳大利亚悉尼,所以我是 +10 GMT,这意味着我是 UTC = LocalTime + (-10)。因此 GetTimeZoneInformation 正确地确定我是 -10。
但是我的函数返回一个无符号整数,所以它不应该返回 10 而不是 -10 吗?
unsigned int getTimeZoneBias()
{
TIME_ZONE_INFORMATION tzInfo;
DWORD res = GetTimeZoneInformation( &tzInfo );
if ( res == TIME_ZONE_ID_INVALID )
{
return (INT_MAX/2);
}
return (unsigned int(tzInfo.Bias / 60)); // convert from minutes to hours
}
TCHAR ch[200];
_stprintf( ch, _T("A: %d\n"), getTimeZoneBias()); // this prints out A: -10
debugLog += _T("Bias: ") + tstring(ch) + _T("\r\n");