嘗試增加.%f
到您的字符串(Python的2.6+),應辦理值(儘管它似乎並沒有被存儲):
In [5]: import time
In [6]: d2 = '2012-11-07 13:41:13.138807'
In [7]: d1 = time.strptime(d2, '%Y-%m-%d %H:%M:%S.%f')
In [8]: d1
Out[8]: time.struct_time(tm_year=2012, tm_mon=11, tm_mday=7, tm_hour=13, tm_min=41, tm_sec=13, tm_wday=2, tm_yday=312, tm_isdst=-1)
從@bradleyayers該解決方案將準確地捕捉你的微秒值如果需要的話,所以如果你需要,我會建議使用他的方式:)
由於%f
參數datetime
/time
不可預2.6,如果你不需要捕獲微秒,你可以嘗試這樣的東西(粗糙的想法分裂在pe上荒漠化問題和採取的第一個元素 - 有可能成爲優化):
In [20]: import time
In [21]: d2 = '2012-11-07 13:41:13.138807'
In [22]: d2_noms = d2.split('.')[0]
In [23]: d1 = time.strptime(d2_noms, '%Y-%m-%d %H:%M:%S')
In [24]: d1
Out[24]: time.struct_time(tm_year=2012, tm_mon=11, tm_mday=7, tm_hour=13, tm_min=41, tm_sec=13, tm_wday=2, tm_yday=312, tm_isdst=-1)
我得到 「KeyError異常: 'F'」。我正在使用python 2.4 – thavan
@thavan啊,對不起,應該把Python 2.6+部分放在那裏。這並不理想,但會修改字符串以去掉微秒部分是一個選項嗎? – RocketDonkey
我不需要微秒。是否可以省略那部分? – thavan