时区差异变得意外

时间:2013-08-21 05:49:20

标签: windows mfc

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

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

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

输出:5.50000 预期产量:5.30000

1 个答案:

答案 0 :(得分:0)

偏差以分钟为单位(Dev center Time zone info

所以+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);