我正在尝试使用 Windows API 获取时区差异。我正在使用代码
TIME_ZONE_INFORMATION TimeZoneInfo;
GetTimeZoneInformation( &TimeZoneInfo );
float TimeZoneDifference = -( float(TimeZoneInfo.Bias) / 60 );
我正在使用 (UTC +5:30) 时区。
输出:5.50000 预期输出:5.30000
偏差以分钟为单位(开发中心时区信息)
所以 +5:30 的偏差是 330 分钟。在您的代码中除以 60,您得到:5.5。五个半小时的十进制表示。
如果您坚持要获得 5.3,请尝试:
float hours = trunc(float(TimeZoneInfo.Bias) / 60);
float nonDecimalHourFraction = float(TimeZoneInfo.Bias % 60) / 100;
float TimeZoneDifference = -(hours + nonDecimalHourFraction);