Convertion de date

cs_coscu Messages postés 4 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 25 septembre 2006 - 16 oct. 2002 à 19:17
cs_coscu Messages postés 4 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 25 septembre 2006 - 17 oct. 2002 à 20:58
Voilà, je récupére d'un systeme linux un fichier comportant des dates en seconde depuis le 1ér janvier 1970.
Comment peut-t-on convertir ce nombre en date en VB sous le format JJ/MM/AAAA HH:MM:SS
merci pour votre aide.

2 réponses

cs_Hobby Messages postés 116 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 17 septembre 2008
17 oct. 2002 à 01:23
J'avais fait une routine pour cela, je devais convertir le temps qui ce trouvait dans un log du serveur proxy (sQuid). Le principe est de faire une comparaison avec des date connue exemple:
le 31 décembre 1998 à 00:00:00 cela fait: 915148800 secondes. Tu compare avec ton temps si c'est suppérieur tu teste avec l'année suivante sinon tu sais que c'est dans l'année 1998 par exemple.
Pour utilisé la fonction tu fait:
Call Extraire(le temp en seconde)
Fait un module et mais cela dedans:
Fait un forme avec text2 et text3 et command1
tu ajoute dans command1 le call
Public TableAnnee(100) As Long
Public TableAnneeSec(100) As Long
Public TableAnneeBis(100) As Long
Public TableMois(12) As Long
Public Sub Donnees()    TableAnnee(1) 1997: TableAnneeSec(1) 883612800: TableAnneeBis(1) = 0    TableAnnee(2) 1998: TableAnneeSec(2) 915148800: TableAnneeBis(2) = 0    TableAnnee(3) 1999: TableAnneeSec(3) 946684800: TableAnneeBis(3) = 0    TableAnnee(4) 2000: TableAnneeSec(4) 978307200: TableAnneeBis(4) = 1    TableAnnee(5) 2001: TableAnneeSec(5) 1009843200: TableAnneeBis(5) = 0    TableAnnee(6) 2002: TableAnneeSec(6) 1041379200: TableAnneeBis(6) = 0    TableAnnee(7) 2003: TableAnneeSec(7) 1072915200: TableAnneeBis(7) = 0    TableMois(1) 31: TableMois(2) 28: TableMois(3) = 31: TableMois(4) = 30    TableMois(5) 31: TableMois(6) 28: TableMois(7) = 31: TableMois(8) = 31    TableMois(9) 31: TableMois(10) 30: TableMois(11) = 31: TableMois(12) = 30
End Sub
Public Sub Extraire(TempsUnix As Long)
    Dim intA As Integer
    Dim Annee As Integer
    Dim Mois As Integer
    Dim Jour As Integer
    Dim Heure As Integer
    Dim Minute As Integer
    Dim Seconde As Integer
    Dim intB As Integer
    Dim Temp As Long
    Dim PrecedenteSec As Long
    ' Recherche de l'année
    intA = 1
    Do
        If TempsUnix < TableAnneeSec(intA) Then
            Exit Do
        End If
        intA = intA + 1
    Loop
    Annee = TableAnnee(intA)
    TempsUnix = TempsUnix - TableAnneeSec(intA - 1)
    'Recherche du mois    intB 1: Temp 0: PrecedenteSec = 0
    Do
        If intB = 2 Then
            Temp = Temp + ((TableMois(intB) + TableAnneeBis(intB)) * 24) * 3600
        Else
            Temp = Temp + ((TableMois(intB) * 24) * 3600)
        End If
        If TempsUnix < Temp Then
            Exit Do
        End If
        PrecedenteSec = Temp
        intB = intB + 1
    Loop
    Mois = intB
    TempsUnix = TempsUnix - PrecedenteSec
    ' Recherche du jour    intB 1: Temp 0: PrecedenteSec = 0
    Do        Temp Temp + 86400     ' 1 Jour 24*3600
        If TempsUnix < Temp Then
            Exit Do
        End If
        intB = intB + 1
    Loop
    Jour = intB - 1
    TempsUnix = TempsUnix - (Jour * 86400)
    ' Recheche Heure
    Heure = Fix(TempsUnix / 3600)
    TempsUnix = TempsUnix - (Heure * 3600)
    ' Recherche Minute
    Minute = Fix(TempsUnix / 60)
    TempsUnix = TempsUnix - (Minute * 60)
    Seconde = TempsUnix
    Form1.Text2.Text = Annee & ":" & Mois & ":" & Jour
    Form1.Text3.Text = Heure & ":" & Minute & ":" & Seconde
End Sub

Bon je ne suis pas sûr a 100% du résultat soit exact mais tu as le principe, reste a ajuster.

a+
Olivier
0
cs_coscu Messages postés 4 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 25 septembre 2006
17 oct. 2002 à 20:58
Merci, je vais faire un essai.
Je sais qu'il existe une fonction en Jscript qui fait ça, mais je n'ai pas les outils pour l'utiliser.
La fonction est "setTime()"
Je pense qu'il faut faire un DLL.
0
Rejoignez-nous