jesusdutd3
Messages postés3Date d'inscriptionsamedi 16 février 2008StatutMembreDernière intervention14 janvier 2009
-
14 janv. 2009 à 10:37
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 2013
-
14 janv. 2009 à 20:09
Bonjour à tous,
Je suis à la recherche d'une fonction vb6 permettant de convertir une heure en utc à partir d'une timezone et inversement de recuperer une heure locale en fonction d'une heure utc et d'une timezone.
Cela fait un long moment que je cherche mais sans succes.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 14 janv. 2009 à 10:44
salut,
voici un exemple d'utilisation des API qui devrait correspondre à ta demande :
Private Type
FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Declare Function GetProcessTimes Lib "kernel32" (ByVal hProcess As Long, lpCreationTime As FILETIME, lpExitTime As FILETIME, lpKernelTime As FILETIME, lpUserTime As FILETIME) As Long
Private Declare Function FileTimeToLocalFileTime Lib
"kernel32" (lpFileTime As FILETIME, lpLocalFileTime As
FILETIME) As
Long
Private Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Sub Form_Load()
'KPD-Team
2000
'URL:
http://www.allapi.net/ 'E-Mail:
KPDTeam@Allapi.net
Dim FT0 As FILETIME, FT1 As FILETIME, ST As SYSTEMTIME
GetProcessTimes GetCurrentProcess, FT1, FT0, FT0,
FT0
FileTimeToLocalFileTime FT1, FT1
FileTimeToSystemTime FT1, ST
MsgBox "This program was started at
" + CStr(ST.wHour) + ":" + CStr(ST.wMinute) + "." + CStr(ST.wSecond) + " on " + CStr(ST.wMonth) + "/" + CStr(ST.wDay) + "/" + CStr(ST.wYear)
End Sub
jesusdutd3
Messages postés3Date d'inscriptionsamedi 16 février 2008StatutMembreDernière intervention14 janvier 2009 14 janv. 2009 à 18:52
Merci beaucoup pour ta réponse,
Si j'ai bien compris , la fonction FileTimeToLocalTime prend une date en utc et retourne la date locale. Mais comment recuperer le FileTime correspond à telle ou telle timezone ? J'ai un type TIME_ZONE_INFORMATION , existe-t-il une methode pour recuperer un FileTime en fonction d'un time_zone_information ?
Pour etre sur d'etre clair voici le detail de ce que je dois faire :
Je dois d'abord convertir la date actuelle (heure et minutes comprises) en utc.
Puis voir à quelle date (heure et minutes comprises) cela correspond par rapport à la TimeZone qui m'interesse (ça peut etre un peu partout dans le monde)
Je réalise ensuite des calculs qui me retournent une date (heure et minutes comprises) que je dois retraduire en utc pour ensuite recuperer la date française (heure et minutes comprises) à laquelle elle correspond.
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 14 janv. 2009 à 20:09
Bonjour,
tu ne peux faire celà, dès lors que même les fuseaux horaires ne sauraient t'aider puisque certains pays ont des heures officielles qui n'y correspondent pas toujours, qu'à laide d'une base de données dans laquelle sont enregistrés, pour chaque zone :
1) les écarts par rapport à GMT
2) les modifications saisonnières (hé oui), en tenant de surcroît compte du fait que chaque pays est libre de modifier, à tout moment, sa politique de modification saisonnière (tables à mettre donc à jour chaque fois que de besoin)
Selon les besoins, certains ont choisi, pour certaines applications "partagées", de faire l'inverse en matière de mise à jour des écarts : ce sont les utilisateurs qui sont alors chargés de renseigner et modifier l'écart, à un instant t, par rapport à GMT.