2016-08-16 2 views
-1

GetTimeZoneInformation заполняет TIME_ZONE_INFO структуру со всякой полезной информацией.Как узнать, находится ли текущее местное время при дневном свете

За исключением того, что на самом деле не говорит мне, существует ли текущий местный часовой пояс в летнее время или нет.

В этом отношении я в Нью-Йорке и StandardBias и DaylightBias обе говорят то же самое, что и Bias.

Что происходит?

+0

Вы можете проверить текущую дату в полях StandardDate и DaylightDate, чтобы узнать, находится ли TZ в настоящее время в стандартном или дневном свете. – Logicrat

ответ

4

Код возврата GetTimeZoneInformation содержит информацию, которую вы хотите.

Согласно MSDN:

Если функция завершается успешно, она возвращает одно из следующих значений.

TIME_ZONE_ID_UNKNOWN
Переход на летнее время не используется в текущем часовом поясе, потому что нет никаких дат перехода или автоматическая настройка на летнее время отключен.

TIME_ZONE_ID_STANDARD
Система работает в диапазоне охватываемого элемента StandardDate из TIME_ZONE_INFORMATION структуры.

TIME_ZONE_ID_DAYLIGHT
Система работает в диапазоне охватываемого элемента DaylightDate из TIME_ZONE_INFORMATION структуры.

Если функция не срабатывает по другим причинам, например, из-за ошибки в памяти, она возвращает TIME_ZONE_ID_INVALID. Чтобы получить расширенную информацию об ошибке, звоните GetLastError.

Обязательно проверьте код возврата, чтобы гарантировать, что информация, которую вы получаете, действительно действительна.

+0

Да, как я пропустил это. :-) Благодаря. Хотя у меня есть эксперт ... любой способ получить что-то похожее на название города олсона из окон? Мне нужно создать либический объект часового пояса, которому нужно имя города olsen, и я не вижу, как его получить из окон. – stu

+0

@stu Нет эксперта здесь. Никогда не приходилось это делать, и быстрое прочтение литературы, выкопанной google, не показывает никаких готовых или простых способов сделать это. Я также не вижу отображения в 'boost :: locale', но я мог бы быть устаревшим. Похоже, вы должны задать другой вопрос. – user4581301

+0

Спасибо. Я много смотрю. Я думаю, что окна не делают olsen, и то, что он делает, вероятно, недостаточно для того, чтобы найти в базе данных libical timezone ... – stu

Смежные вопросы