webentwicklung-frage-antwort-db.com.de

Konvertierung (JJJJ-MM-TT-HH: MM: SS) Datum Uhrzeit

Ich möchte einen String wie diesen "29-Apr-2013-15:59:02" In etwas brauchbareres konvertieren.

Die Bindestriche können leicht durch Leerzeichen oder andere Zeichen ersetzt werden. Dieses Format wäre ideal: "YYYYMMDD HH:mm:ss (20130429 15:59:02)".

Bearbeiten:

Entschuldigung, ich habe die Antwort nicht speziell in einem anderen Beitrag gesehen. Aber auch hier bin ich unwissend, also hätte ich mir die Lösung anschauen können und wusste es nicht. Ich habe das funktioniert, aber ich würde es nicht als "hübsch" betrachten.

#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

Irgendwelche Gedanken zur Verbesserung?

17
dgj32784

Verwenden Sie datetime.strptime () , um die inDate-Zeichenfolge in ein Date-Objekt zu parsen, verwenden Sie datetime.strftime () , um das Format in einem beliebigen Format auszugeben:

>>> 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)'
31
Bryan
1
David

Sie möchten in datetime schauen, insbesondere strptime.

0
Dave