Page 1 sur 1
[R] Func WMIDateStringToDate WMI
Posté : ven. 29 oct. 2010 17:20
par Laddy
Bonjour tout le monde.
J'ai ma fonction qui ne fonctionne pas à cause de CDate, quel est l'équivalent en autoit pour faire fonctionner ma fonction de conversion de date ?
Code : Tout sélectionner
$WMIDateStringToDate = CDate(StringMid($dtmInstallDate, 5, 2) & "/" & _
Les mots clés que j'ai rentré sur le forum ou dans le fichier d'aide ne m'ont rien retourné.
Code : Tout sélectionner
Func WMIDateStringToDate($dtmInstallDate)
$WMIDateStringToDate = CDate(StringMid($dtmInstallDate, 5, 2) & "/" & _
StringMid($dtmInstallDate, 7, 2) & "/" & StringLeft($dtmInstallDate, 4) _
& " " & StringMid ($dtmInstallDate, 9, 2) & ":" & _
StringMid($dtmInstallDate, 11, 2) & ":" & StringMid($dtmInstallDate, _
13, 2))
EndFunc
Comme beaucoup j'utilisai celle ci mais la date et heure ne sont pas exacte à la conversion il manque 2h.
Code : Tout sélectionner
Func WMIDateStringToDate($dtmDate)
Return (StringMid($dtmDate, 5, 2) & "/" & _
StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
& " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
EndFunc
Merci
Bon week end à tous
Laddy
Re: [..] Func WMIDateStringToDate WMI
Posté : sam. 30 oct. 2010 06:36
par jl56
Bonjour
c'est dommage que vous ne donnez pas un exemple de date à convertir
en lisant le code a l'envers j'ai déduit un format de date comme ceci 20103010061900 pour le 30 10 2010 à 6h19
dans votre exemple cdate est une fonction je pense que c'est une erreur
vous avez la fonction WMIDateStringToDate et la variable $WMIDateStringToDate !!
du coup en corrigeant votre code j'arrive à la solution de votre exemple N°3 et je n'ai pas de probleme
d'où ma remarque sur le format de date à convertir
Code : Tout sélectionner
$dtmInstallDate="20103010061900"
MsgBox(0,"date convertie=",WMIDateStringToDate($dtmInstallDate))
Exit
Func WMIDateStringToDate($dtmInstallDate)
Return (StringMid($dtmInstallDate, 5, 2) & "/" & _
StringMid($dtmInstallDate, 7, 2) & "/" & StringLeft($dtmInstallDate, 4) _
& " " & StringMid ($dtmInstallDate, 9, 2) & ":" & _
StringMid($dtmInstallDate, 11, 2) & ":" & StringMid($dtmInstallDate, _
13, 2))
EndFunc
A+ JL56
Re: [..] Func WMIDateStringToDate WMI
Posté : sam. 30 oct. 2010 09:45
par Tlem
@jl56
Mais ou est donc la différence entre votre code et le deuxième code de Laddy ???
Le mieux, serait que Laddy nous donne une date/variable de départ, puis le résultat escompté et là je pense qu'on pourra donner une solution.

Re: [..] Func WMIDateStringToDate WMI
Posté : sam. 30 oct. 2010 20:43
par jl56
@Tlem
HE oui il n'y en pas ( si ce n'est justement un exemple de date/variable de départ )
en corrigeant votre code j'arrive à la solution de votre exemple N°3 et je n'ai pas de probleme
d'où ma remarque sur le format de date à convertir
Et j'arrive au même raisonnement, il manque un exemple de date à convertir
A+ JL56
Bon weekend
ce soir en BRETAGNE ça commence à souffler fort
Re: [..] Func WMIDateStringToDate WMI
Posté : dim. 31 oct. 2010 10:09
par Laddy
Bonjour
je crois que je me suis embrouillée dans mes tests en fait il me manque une heure.
J'obtiens ceci avec l'une ou l'autre fonction, il manque une heure sur l'heure réelle de l'execution.
[10/31/2010 08:58:29] RP318 - autoit_date
au lieu de cela :
[31/10/2010 09:58:29]autoit_date
Le format des dates WMI ressemble à ceci : [20101031085829.390625-000]autoit_date
Mon code entier est ici :
http://autoitscript.fr/forum/viewtopic.php?f=3&t=6031
Re: [..] Func WMIDateStringToDate WMI
Posté : dim. 31 oct. 2010 11:16
par ani
hypothèse probable,activation de heure d'hiver/été
Normalement tu devrais être à la bonne heure sans rien changer aujojurd'hui :p
bonne continuation

Re: [..] Func WMIDateStringToDate WMI
Posté : dim. 31 oct. 2010 11:23
par Tlem
Je pense que le décalage de l'heure correspond à la gestion de l'heure d'été/hivers.
Puisque nous avons changé d'heure cette nuit, vous ne devriez plus avoir ce décalage aujourd'hui.
Désactivez cette gestion automatique et vous verrez que ça ira mieux.
Si vous ne pouvez pas désactiver cette fonctionnalité, alors vous devrez prendre en compte la gestion de l'heure d'été/hivers.
Edit : Arf. Coiffé sur le poteau par ani.

Re: [..] Func WMIDateStringToDate WMI
Posté : dim. 31 oct. 2010 14:32
par Laddy
Bonjour
non mon problème est avec le méridian de GreenWish je pense.
J'ai trouvé ma solution qui est la suivante.
Ma date et mon heure est Ok.
Code : Tout sélectionner
$dtmConvertedDate = ObjCreate("WbemScripting.SWbemDateTime")
$objWMI = ObjGet("winmgmts:\\localhost\root\default")
$colItems = $objWMI.ExecQuery("SELECT * FROM SystemRestore")
$i = 0
If $colItems.Count = 0 Then
MsgBox(0, "Aucun Point", "No restore point in system.")
Else
$i = $colItems.Count
;For Each $objItem In $colItems
If IsObj($colItems) Then
For $objItem In $colItems
If $i < 6 Then
$dtmConvertedDate.Value = $objItem.CreationTime
$dtmCreationTime = $dtmConvertedDate.GetVarDate
MsgBox(0, "RP", "[" & WMIDateStringToDate($dtmCreationTime) & "]" & $objItem.Description)
;MsgBox(0, "RP", "[" & WMIDateStringToDate($objItem.CreationTime) & $objItem.Description)
EndIf
$i = $i - 1
Next
EndIf
EndIf
Func WMIDateStringToDate($dtmInstallDate)
Return (StringMid($dtmInstallDate, 5, 2) & "/" & _
StringMid($dtmInstallDate, 7, 2) & "/" & StringLeft($dtmInstallDate, 4) _
& " " & StringMid ($dtmInstallDate, 9, 2) & ":" & _
StringMid($dtmInstallDate, 11, 2) & ":" & StringMid($dtmInstallDate, _
13, 2))
EndFunc
Je mettrai mon sujet en résolu demain matin car je n'ai pas mon code complet pour confirmer.
Re: [..] Func WMIDateStringToDate WMI
Posté : dim. 31 oct. 2010 14:55
par Tlem
Mouarf, en dehors du fait d'avoir supprimé les options
"WQL", 0x10 + 0x20 ligne 3 et l'utilisation de la fonction
WMIDateStringToDate() ligne 15, votre code est identique !!!
Sachant que
WMIDateStringToDate() ne sert que pour l'affichage du format de la date, je doute que vous ayez résolu votre problème de décalage de l'heure.
Il reviendra surement lors du passage en heure d'été.

Re: [..] Func WMIDateStringToDate WMI
Posté : dim. 31 oct. 2010 18:50
par Laddy
Bonjour Tlem
Non, je pense que mon problème est réglé je testerai dans mon script plein demain.
ce souci existait vendredi il y avait 2h de différenceet aujourd'hui il manquait une heure.
C'est un souci de Date&Heure UTC.
http://www.activexperts.com/activmonito ... ment/date/
Je vous montre des captures d'écran
A gauche mon script complet AutoIt contenant mon soucis
A droite la restauration systeme de mon Windows
Avec la correction voici ce que j'obtiens

Bonne soirée.
PS : la fonction mail est désactivé sur le forum ? car je ne reçois pas les notifications de nouveaux messages.
Re: [..] Func WMIDateStringToDate WMI
Posté : lun. 01 nov. 2010 03:20
par Tlem
Pour moi, c'est cette partie qui modifie la date :
Code : Tout sélectionner
$dtmConvertedDate.Value = $objItem.CreationTime
$dtmCreationTime = $dtmConvertedDate.GetVarDate
Le reste ne concerne que l'apparence.
