Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous !
J'ai une petite fonction qui ramène les heures de création et dernière modification d'un fichier donné.
Cela utilise la fct windows FileTimeToLocalFileTime, etc. Et ça fonctionne...
Elle me renvoie cependant l'heure "système pure", si je puis dire...
Ainsi, pour un fichier créé sur mon pc à 12h45, elle m'indique 11h45.
Il semble que cela vienne que la fonction considère l'heure à GMT+0, là où je travaille en GMT+1.
Peut-être il y a-t-il moyen de se baser sur les "regional settings" ?
Je suis presque sur d'avoir déjà vu un post traitant de cela ici, mais plus moyen de mettre la main dessus...
QQun peut-il me donner un coup de pouce ??
Merci d'avance !
El Feliz
Dernière modification par elfeliz (19-03-2011 10:36:31)
Hors ligne
En théorie, c'est déjà ce que FileTimeToLocalFileTime est censé faire.
Tu peux poster ton code ?
Hors ligne
Bonsoir,
désolé pour le retard...
Voici le bout de code :
lb_translated = FileTimeToLocalFileTime (This.istr_finddata.str_lastaccesstime, This.istr_finddatatemp.str_lastaccesstime) lb_translated = FileTimeToSystemTime ( This.istr_finddatatemp.str_lastaccesstime, istr_SystemDateTime) ls_filetime_deracces = string (datetime(date(istr_SystemDateTime.wYear, istr_SystemDateTime.wMonth, istr_SystemDateTime.wDay), & time(istr_SystemDateTime.wHour, istr_SystemDateTime.wMinute, istr_SystemDateTime.wSecond)), "dd/mm/yyyy hh:mm:ss")
Merci pour toute piste !
Hors ligne
Bonjour à tous !
J'ai finalement réglé le problème via GetTimeZoneInformation (aaahhhh les API...).
Je vous file le code, ça peut servir...
A bientôt !
ll_timezone =GetTimeZoneInformation(istr_timezoneinformation) if ll_timezone = 2 then ll_gap = istr_timezoneinformation.bias + istr_timezoneinformation.daylightbias else ll_gap = istr_timezoneinformation.bias end if // remise au format heure li_heure = abs(ll_gap) / 60 li_min =abs(ll_gap) - (li_heure * 60) // !! traiter si fuseau négatif : GMT-1, -2 etc
Et donc le code précédent devient :
... ... ls_filetime_deracces =string(datetime(date(istr_SystemDateTime.wYear, istr_SystemDateTime.wMonth, istr_SystemDateTime.wDay), time((istr_SystemDateTime.wHour + li_heure) , ( istr_SystemDateTime.wMinute + li_min),istr_SystemDateTime.wSecond)),"dd/mm/yyyy hh:mm:ss")
Dernière modification par elfeliz (19-03-2011 11:14:16)
Hors ligne
Merci
Hors ligne