2016-08-02 90 views
0

我想从字符串转换到使用时间戳:strptime时间戳和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') 

我得到: ValueError异常

时间数据09 -mar-15 12.54.45.000000000 AM”不匹配格式 '%D-%B-%Y%I.%M.%S%F%p'

回答

2

的下面将工作,只要小数点后的部分总是以000结尾。:-) %f捕获微秒,而我猜你的时间戳使用纳秒?

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

你可能会考虑只是剔除这三位数字。例如。

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

是的它是纳秒。 Python无法处理nanosec? :) – kinkajou

+0

不管'datetime'。 – smarx