Conversion date format UTC

Conversion date format UTC - Python - Programmation

Marsh Posté le 05-02-2009 à 14:59:52    

Je viens vers vous suite à une petite interrogation,
je continue d'utiliser Python dans le cadre de la maintenance des postes Windows XP au boulot,
Lors de mes requêtes WMI, je me retrouve parfois avec une date au format UTC exemple ci-dessous:
 
c:\userinit.dmp => 20081008093406.587219+120
 
La ligne est affichée à l'aide du code suivant:
 

Code :
  1. import wmi
  2. c = wmi.WMI()
  3. for fic in c.CIM_DataFile(Drive="C:", Extension="dmp" ):
  4.      print fic.Name, "=>", fic.CreationDate


 
 
J'ai eu beau regarder dans les modules datetime et time, et je ne trouve aucune trace de ce format a savoir:
yyyymmddHHMMSS.mmmmmmmuuu
Mon problème n'est pas forcément bloquant car je peut effectivement créer une fonction qui va découper cette chaine pour y ajouter des "/" ou des ":" par exemple.
Mais je suis surpris de ne pas réussir à retrouver ce format de date dans les fonctions dispo directement via les modules Times et Datetime.
Ce format de date n'apparait que lorsque j'utilise WMI.
Si je travaille sur les dates de création de fichiers a l'aide des modules os et stat, le format et bien entendu différent.
 
Exemple de fonction que j'utilise pour traiter le format de date suite à une requête  WMI:
 
   

Code :
  1. def WMIDateStringToDate(dtmDate):
  2.         strDateTime = ""
  3.         if (dtmDate[4] == 0):
  4.             strDateTime = dtmDate[5] + '/'
  5.         else:
  6.             strDateTime = dtmDate[4] + dtmDate[5] + '/'
  7.         if (dtmDate[6] == 0):
  8.             strDateTime = strDateTime + dtmDate[7] + '/'
  9.         else:
  10.             strDateTime = strDateTime + dtmDate[6] + dtmDate[7] + '/'
  11.             strDateTime = strDateTime + dtmDate[0] + dtmDate[1] + dtmDate[2] + dtmDate[3] + " " + dtmDate[8] + dtmDate[9] + ":" + \
  12.             dtmDate[10] + dtmDate[11] +':' + dtmDate[12] + dtmDate[13]
  13.         return strDateTime


 

Reply

Marsh Posté le 05-02-2009 à 14:59:52   

Reply

Marsh Posté le 05-02-2009 à 15:37:45    

Portanoo92 a écrit :

Ce format de date n'apparaît que lorsque j'utilise WMI.


C'est peut-être parce que le format est créé/généré par WMI, et qu'il faudrait aller voir la doc/le contenu de WIM pour savoir ce qu'il est précisément, non?

 

En l'occurence, c'est comme inféré le format DATETIME du Common Information Model.

 

Et si tu vas regarder la doc du module wmi Python, tu découvriras rapidement une fonction te permettant de convertir un datetime WMI en un 9-tuple que tu peux ensuite utiliser comme tu le désires, par exemple pour générer un datetime python. Note que tu devras convertir le tzinfo si tu en as besoin, mais si tu ne veux pas le garder tu peux simplement slicer le tuple et l'unpacker comme arguments à datetime.datetime.


Message édité par masklinn le 05-02-2009 à 15:39:16

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 06-02-2009 à 00:02:53    

Merci  
 
Masklinn, comme quoi y'a pas photo faut savoir chercher un peu a droite et à gauche
J'ai effectivement pas cherché du côté de WMI.
Avec ces informations je vais pouvoir convertir cette date d'une maniere un peu plus simple

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed