0

我正在尝试使用 Windows API 获取时区差异。我正在使用代码

    TIME_ZONE_INFORMATION TimeZoneInfo;
GetTimeZoneInformation( &TimeZoneInfo );
float TimeZoneDifference = -( float(TimeZoneInfo.Bias) / 60 );

我正在使用 (UTC +5:30) 时区。

输出:5.50000 预期输出:5.30000

4

1 回答 1

0

偏差以分钟为单位(开发中心时区信息

所以 +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);
于 2013-08-21T06:04:02.667 回答