Как мне конвертировать GMT в LocalTime в Win32 C? - PullRequest
2 голосов
/ 16 сентября 2008

Я хочу конвертировать различные местоположения / дату / время в истории из GMT в местное время. Кажется, что SystemTimeToTzSpecificLocalTime лучше, чем FileTimeToLocalFileTime. Когда пары дата / время также включают различные местоположения, преобразование становится волосатым. Я нашел набор данных на ftp: //ftp.iana.org/tz/releases - был ftp: //elsie.nci.nih.gov/pub/ - кажется, что это прекрасно завершено в истории и пространстве, но, похоже, оно предназначено для компиляции для одного часового пояса, а не для всех.

Функции

GetDynamicTimeZoneInformation и GetTimeZoneInformationForYear доступны только начиная с Vista / Server 2008, и у меня есть машины с версией NT 4.0. Я, вероятно, постараюсь использовать их условно на более новых системах.

Есть ли хороший пакет C, который решит эту проблему для меня для Windows XP и NT 4.0?

1 Ответ

1 голос
/ 16 сентября 2008

SystemTimeToTzSpecificLocalTime - правильная функция для этого, но вам нужен способ для заполнения полной базы данных структур TIMEZONE_INFO.

Для получения подробной информации о том, как вы можете создать набор структур TIMEZONE_INFO из самого реестра, смотрите эту ветку на egghead cafe:
http://www.eggheadcafe.com/software/aspnet/31656478/get-current-time-in-diffe.aspx

Чтобы все было действительно правильно при изменениях в законодательстве, вам понадобятся GetDynamicTimeZoneInformation и GetTimeZoneInformationForYear. Смотри http://msdn.microsoft.com/en-us/library/ms724421(VS.85).aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...