Je veux convertir une chaîne comme celle-ci "29-Apr-2013-15:59:02"
.__ en quelque chose de plus utilisable.
Les tirets peuvent être facilement remplacés par des espaces ou d’autres caractères. Ce format serait idéal: "YYYYMMDD HH:mm:ss (20130429 15:59:02)"
.
Modifier:
Désolé, je n'ai pas vu la réponse dans un autre post. Mais encore une fois, je suis ignorant, donc j’aurais pu chercher la solution sans le savoir. J'ai ce travail, mais je ne le considérerais pas "joli".
#29-Apr-2013-15:59:02
import sys, datetime, time
#inDate = sys.argv[1]
inDate = 29-Apr-2013-15:59:02
def getMonth(month):
monthDict = {'Jan':'01','Feb':'02','Mar':'03','Apr':'04','May':'05','Jun':'06','Jul':'07','Aug':'08','Sep':'09','Oct':'10','Nov':'11','Dec':'12'}
for k, v in monthDict.iteritems():
if month == k:
return v
day = inDate[:2]
#print day
month = inDate[3:6]
#print month
year = inDate[7:11]
#print year
time = inDate[-8:]
#print time
newDate = year+getMonth(month)+day
newDateTime = newDate+" "+time
print newDate
print newDateTime
Des idées pour améliorer?
Utilisez datetime.strptime () pour analyser la chaîne inDate
dans un objet de date, utilisez datetime.strftime () pour afficher le format de votre choix:
>>> from datetime import datetime
>>> inDate = "29-Apr-2013-15:59:02"
>>> d = datetime.strptime(inDate, "%d-%b-%Y-%H:%M:%S")
>>> d
datetime.datetime(2013, 4, 29, 15, 59, 2)
>>> d.strftime("YYYYMMDD HH:mm:ss (%Y%m%d %H:%M:%S)")
'YYYYMMDD HH:mm:ss (20130429 15:59:02)'
Avez-vous étudié dateutil?
http://labix.org/python-dateutil
J'ai trouvé une question similaire à la vôtre: Comment traduire une chaîne datetime ISO 8601 en un objet datetime Python?
Vous voulez examiner datetime
, en particulier strptime
.