![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Snake_B |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не могу разобраться как считать из реестра даные часовых поясов о датах перехода на летнее/зимнее время.
Хранятся тут: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\ Параметр TZI, в reg_binary... ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
|
Snake_B |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: ![]() ![]() ![]() |
Внимание, вопрос: А что тебе возвращает GetTimeZoneInformation в поле StandardName, можно посмотреть? Сделай просто вот так: ![]() и прилепи сюда картинку... не-а.... не то она возвращает... ![]() но всё, вопрос вроде закрыт... сделал через "LocalFileTimeToFileTime" (Kernel32.lib)... там на скриншоте виден код... надо только ещё проверить учитывает ли она этот DYNAMIC_TIME_ZONE_INFORMATION, а так всё работает... |
Snake_B |
![]()
Сообщение
#4
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: ![]() ![]() ![]() |
но всё, вопрос вроде закрыт... сделал через "LocalFileTimeToFileTime" (Kernel32.lib)... там на скриншоте виден код... надо только ещё проверить учитывает ли она этот DYNAMIC_TIME_ZONE_INFORMATION, а так всё работает... м-да... рано я обрадовался... "LocalFileTimeToFileTime" это вот чудо для расчета времени UTC отнимает разницу с UTC которая в заданном у пользователя поясе СЕЙЧАС, при чем не зависимо от даты... т.е. если сейчас летнее время и разница +3, то она выдаст UTC = LocalTime-3... даже если мы её зададим дату после того когда уже должен быть переход на зимнее время и разница будет +2... вопросы... 1. такая вот функция const DLL = 'ntdll.dll'; function RtlLocalTimeToSystemTime(LocalTime: LongInt; SystemTime: LongInt) : NTSTATUS; stdcall; external DLL name 'RtlLocalTimeToSystemTime'; как мне преобразовать TDateTime в LongInt ? если и эта не сработает, то видимо прийдётся брать GetTimeZoneInformation... |
![]() ![]() |
![]() |
Текстовая версия | 25.06.2025 11:40 |