Как вы получаете информацию для произвольный часовой пояс в Windows?

В идеале я хотел бы иметь возможность взять имя часового пояса и запросить у Windows информацию о соответствующем часовом поясе (смещение от UTC, смещение DST, даты переключения DST). , и т.д.). Похоже, что Windows использует структуру TIME_ZONE_INFORMATION для хранения такого рода информации. Итак, по-видимому, я хочу функцию, которая принимает строку с часовым поясом s name и возвращает структуру TIME_ZONE_INFORMATION.

Однако, все, что я могу найти, это функции, такие как GetTimeZoneInformation () , которые дают мне TIME_ZONE_INFORMATION для местного времени. Что мне нужно, так это функция, которая даст мне эту информацию для произвольного часового пояса, независимо от того, какой это местный часовой пояс.

Единственный способ, которым я вижу, чтобы получить эту информацию, - это взять ее непосредственно из реестра, что меньше, чем идеал. Страница TIME_ZONE_INFORMATION показывает, где она находится в реестре, поэтому должна быть возможность получить информацию оттуда, но я бы предпочел для нее подходящую системную функцию. Существует ли такая функция, или мне нужно заняться регистрацией, чтобы получить информацию о часовом поясе для произвольного часового пояса?

10
задан Jonathan M Davis 2 September 2010 в 02:32
поделиться