2017-07-23 9 views
0

Ich habe test_date = "2017-07-20-10-30" und dann verwenden Sie Tag = datetime.strptime (test_date [11:], "% H-% M"), die mir gibt 1900-01-01 10:30:00.Konvertieren von Datum zu Uhrzeit in Python

Wie bekomme ich nur: 10:30:00 als Typ 'datetime.time'?

+0

Mögliche Duplikat [Zeichenfolge in Datetime-Konvertierung] (https://stackoverflow.com/questions/466345/converting-string-into-datetime) – fredtantini

Antwort

2

können Sie die strftime Methode des wie dieses datetime Objekt verwenden:

day.strftime('%H:%M') 

Weitere Informationen hier: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

Ok, ich falsch verstanden. Verwenden Sie day.time(), um ein Objekt time zu erhalten.

+0

Aber das gibt String zurück. Ich möchte immer noch

+1

oh, benutze 'day.time()' –

0

Sie können Ihre Zeichenfolge mit datetime.strptime zu einem datetime Objekt analysieren und rufen .time() dann auf, dass die Zeit zu bekommen:

from datetime import datetime 

strg = "2017-07-20-10-30" 

dt = datetime.strptime(strg, '%Y-%m-%d-%H-%M') 
tme = dt.time() 
print(tme) # 10:30:00 

die strftime() and strptime() Behavior gut dokumentiert ist.

natürlich können Sie die Kette auch diese Anrufe:

tme = datetime.strptime(strg, '%Y-%m-%d-%H-%M').time() 
Verwandte Themen