2016-08-02 10 views
0

Ich versuche, aus Zeichenfolge zu konvertieren zeitzustempeln mit:strptime mit Zeitstempel und AM/PM

from datetime import datetime 
date_object = datetime.strptime('09-MAR-15 12.54.45.000000000 AM', '%d-%b-%y %I.%M.%S.%f %p') 

ich: Valueerror:

Zeitdaten '09 -MAR-15 12.54.45.000000000 AM‘nicht übereinstimmt Format '% d-% b-% y% I. M.%% S% F% p'

Antwort

2

Die unten wird so lange funktionieren, wie der Teil nach dem Dezimalpunkt immer in 000 endet. :-) %f fängt Mikrosekunden ein, während ich denke, dass Ihr Zeitstempel Nanosekunden verwendet?

date_object = datetime.strptime('09-MAR-15 12.54.45.000000000 AM', 
           '%d-%b-%y %I.%M.%S.%f000 %p') 

Sie könnten diese drei Ziffern einfach abschneiden. Z.B.

date_object = datetime.strptime(
    re.sub(r'\d{3}(.M)$', r'\1', '09-MAR-15 12.54.45.000000000 AM'), 
    '%d-%b-%y %I.%M.%S.%f %p') 
+0

ja es ist Nano-sek. Python kann nicht mit Nanosec umgehen? :) – kinkajou

+0

Nicht 'datetime' sowieso. – smarx