En utilisant la fonction getdynamictimezoneinformation, comment convertir ces deux structures de date en forme de date/heure locale.

la programmation


n en utilisant la fonction GetDynamicTimeZoneInformation(&dtzi), et dans la structure ‘dtzi’, il indique
vous indique si vous êtes à l’heure d’été ou non et quand ils commenceront, via
ces deux dates. La valeur de retour de cette fonction vous renseigne également sur les mêmes informations.
Mais comment quelqu’un procède-t-il pour convertir ces dates d’été et/ou date standard
structures en formulaires de date/heure locaux lisibles. Puis-je demander comment cela se fait en “C”. je sais là
il doit y avoir quelques conversions, mais comment ? Merci cependant et pour votre temps.

Ce que j’ai essayé :

la méthode des essais et des erreurs. Utiliser des exemples trouvés, puis appliquer l’idée trouvée au problème. Parfois, cela ne fonctionne pas très bien, voire pas du tout.

Solution 1

Je suppose ici que vous parlez de convertir les deux SYSTEMTIME structures dans le DYNAMIC_TIME_ZONE_INFORMATION objet. Pour ce faire, je pense que vous allez commencer par convertir le SYSTEMTIME structure en un fichier local heure en utilisant SystemTimeToLocalFileTime fonction. Une fois que vous aurez fait cela, vous utiliserez FileTimeToSystemTime pour reconvertir l’heure du fichier local en SYSTEMTIME structure représentant la date en heure locale. Cela pourrait ressembler à ceci :

C
SYSTEMTIME standardDate = timeZoneInfo.StandardDate;

FILETIME localFileTime;
SystemTimeToLocalFileTime(&standardDate, &localFileTime);

SYSTEMTIME localStandardDate;
FileTimeToSystemTime(&localFileTime, &localStandardDate);

char dateString[20];
sprintf(dateString, "%d-%02d-%02dT%02d:%02d:%02dT", localStandardDate.wYear, localStandardDate.wMonth, localStandardDate.wDay, localStandardDate.wHour, localStandardDate.wMinute, localStandardDate.wSecond);

Remarque, je suis juste en train de créer cette méthode dans l’éditeur ici, donc il y a peut-être une ou deux fautes de frappe ici.

コメント

タイトルとURLをコピーしました