2016-05-06 30 views
2
>>> a = "2016-03-22 12:33:45.7565" 
>>> datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%f") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 328, in _strptime 
    data_string[found.end():]) 
ValueError: unconverted data remains: .7565 
>>> datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 328, in _strptime 
    data_string[found.end():]) 
ValueError: unconverted data remains: .7565 

我已經使用%S%f但如何處理秒鐘,如果是類型floatDateTime對象,在浮秒

任何幫助,將不勝感激

回答

6

小數點後的數字是微秒,並從單獨格式化秒:

>>> a = "2016-03-22 12:33:45.7565" 
>>> datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S.%f") 
datetime.datetime(2016, 3, 22, 12, 33, 45, 756500) 
+0

它工作正常,謝謝 – Hackaholic

1

只是一種替代方法 - 讓dateutil parser做的工作:

>>> from dateutil.parser import parse 
>>> a = "2016-03-22 12:33:45.7565" 
>>> parse(a) 
datetime.datetime(2016, 3, 22, 12, 33, 45, 756500) 
+0

不能通過日期時間模塊來完成嗎? – Hackaholic

+0

無論如何感謝替代方法。 – Hackaholic

2
In [18]: a = "2016-03-22 12:33:45.7565" 

In [19]: datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S.%f") 
Out[19]: datetime.datetime(2016, 3, 22, 12, 33, 45, 756500) 
+0

我在python 2.7上。它爲我工作 – Pavan