|
Si vous utilisez d'anciennes API exploitant la base de registre de Windows pour convertir vos dates d'un fuseau à l'autre, vous aurez remarqué qu'elles ne fonctionnent plus sur les derniers systèmes d'exploitation de Microsoft. Tout simplement car la structure de la base de registre a changé. Trouvez ici le moyen de les refaire fonctionner.
Type : Correctif
Niveau : 2/5
Durée de lecture : < 1 heure
Compatibilité / s'applique à :
Les applications qui utilisent les informations de la base de registre, pour effectuer des conversions de dates, utilisent les informations stockées par zone. Chaque zone est décrite et contient les informations de fuseau, ainsi que notamment les parametres de passage à l'heure d'été. Suivant la version de votre OS, les clés utilisées se trouvent dans :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones
ou dans :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Afghanistan Standard Time]
"Display"="(GMT+04:30) Kabul"
"Dlt"="Afghanistan Daylight Time"
"Std"="Afghanistan Standard Time"
"MapID"="-1,73"
"Index"=dword:000000af
"TZI"=hex:f2,fe,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
Depuis les nouvelles versions de Windows (NT 6.x), la structure de la base de registre a évoluée, et certaines clés ont disparues. Le problème est que beaucoup d'applications utilisent une clé unique "Index" pour identifier la zone. Voic un export de la base de registre d'un Seven pour la même zone :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Afghanistan Standard Time]
"MUI_Display"="@tzres.dll,-460"
"MUI_Dlt"="@tzres.dll,-461"
"MUI_Std"="@tzres.dll,-462"
"Display"="(UTC+04:30) Kaboul"
"Dlt"="Afghanistan (heure d’été;)"
"Std"="Afghanistan"
"TZI"=hex:f2,fe,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Afghanistan Standard Time]
"MUI_Display"="@tzres.dll,-460"
"MUI_Dlt"="@tzres.dll,-461"
"MUI_Std"="@tzres.dll,-462"
"Display"="(UTC+04:30) Kaboul"
"Dlt"="Afghanistan (heure d’été;)"
"Std"="Afghanistan"
"MapID"="-1,73"
"Index"=dword:000000af
"TZI"=hex:f2,fe,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
Mots clés : How to change time zone information by using Visual Basic, How to get enumeration of system time zones, GetUtcOffset, ToLocalTime, ToUniversalTime, GetLocalDateFromUtcDate, GetTimeZone, GetUtcDateFromLocalDate
Categories: Systemes d'exploitations, Developpements
The words you entered did not match the given text. Please try again.
Oops!
Oops, you forgot something.