conversion str en date ou datetime

conversion str en date ou datetime - Python - Programmation

Marsh Posté le 05-10-2004 à 15:10:51    

bonjour tout le monde,
 
j'aimerais savoir s'il est possible de convertir un str de valeur  
'1991-01-01 00:00' en valeur date ou datetime
 
existe t'il un utilitaire ou une fonction capable de faire cela ?
 
merci d'avance pour la réponse.

Reply

Marsh Posté le 05-10-2004 à 15:10:51   

Reply

Marsh Posté le 05-10-2004 à 15:42:32    

c'est pas supaïr difficile de faire une fonction pour ca à coup de slices -_-
 
datestr = '1991-01-01 00:00'
tme = datetime.datetime(int(datestr[0:4]),int(datestr[5:7]),int(datestr[8:10]),int(datestr[11:13]),int(datestr[14:16]))


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

Marsh Posté le 05-10-2004 à 16:04:58    

merci beaucoup, cela marche nickel

Reply

Marsh Posté le 03-05-2006 à 16:29:03    

apres utilisation de la fonction "Rechercher", je suis tombé sur ca ;)
 
Sauf que moi, j'ai une erreur :  
time = datetime.datetime(int(SaveDate[0:4]),int(SaveDate[5:7]),int(SaveDate[8:10]),int(SaveDate[11:13]),int(SaveDate[14:16]))
TypeError: unsubscriptable object
 
Ca viendrait d'ou ?

Code :
  1. SaveDate = '2006-05-03 06:31'
  2. time = datetime.datetime(int(SaveDate[0:4]),int(SaveDate[5:7]),int(SaveDate[8:10]),int(SaveDate[11:13]),int(SaveDate[14:16]))


Reply

Marsh Posté le 07-05-2006 à 09:51:50    

Un copier coller de ton code marche chez moi. T'es sur que l'erreur vient pas d'ailleurs ?

Reply

Marsh Posté le 07-05-2006 à 11:15:01    

1. Marche très bien chez moi sur un Python 2.4
2. SaveDate c'est pas très pythonique comme nom, seuls les noms de classess sont censés être en PascalCase.
3. Les noms genre "time" qui peuvent écraser des modules standards, évite, merci
4. J'étais jeune et fou quand j'ai donné cette solution, dans les faits il faudrait utiliser time.strptime, qui renvoie un struct_time:

Code :
  1. >>> import time
  2. >>> dte = '2006-05-03 06:31'
  3. >>> time.strptime(dte, '%Y-%m-%d %H:%M')
  4. (2006, 5, 3, 6, 31, 0, 2, 123, -1)


Comme indiqué dans la documentation, les éléments 1 à 6 sont l'année, le mois, le jour, l'heure, les minutes et les secondes (les éléments suivants sont le jour de la semaine, le jour de l'année et le DST).
 
Donc on peut instancier un objet datetime à partir de lui

Code :
  1. >>> import time
  2. >>> dte = '2006-05-03 06:31'
  3. >>> tme_struct = time.strptime(dte, '%Y-%m-%d %H:%M')
  4. >>> tme = datetime.datetime(*tme_struct[0:6])


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

Sujets relatifs:

Leave a Replay

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