2015-04-06 118 views
-2

我有時間字符串是這樣的:字符串轉換爲時間的Python

07/01/2015-14:31:58.520 

我使用這個命令行,將其轉化:

import time 
timeStr = "07/01/2015-14:31:58.520" 
time.strptime(timeStr,'%d/%m/%y-%H:%M:%S.%f') 

但這返回:

ValueError: time data '07/01/2015-14:31:58.520' does not match format '%d/%m/%y-%H:%M:S.%f'

我的python版本是2.7.7

回答

4

%y表示2位數的年份,但您的字符串有4位數的年份。使用%Y(大寫字母Y)表示4位數的年份。有關更多信息,請參閱the docs

time.strptime(timeStr, '%d/%m/%Y-%H:%M:%S.%f') 

注意datetime.strptime可能更有用,因爲它會返回一個完整datetime對象,而不是一個元組。 The format syntax is essentially the same

1

應該(代替%Y%的Y)

time.strptime(timeStr,'%d/%m/%Y-%H:%M:%S.%f') 
0

爲了得到一個datetime對象已經資本Ÿ爲一年,使用python-dateutil

要安裝

pip install python-dateutil 

Then

t = "07/01/2015-14:31:58.520" 
from dateutil import parser 
>>>parser.parse(t) 
datetime.datetime(2015, 7, 1, 14, 31, 58, 520000) 

tim = parser.parse(t) 
>>>str(tim.date()) 
'2015-07-01' 

datetime對象的所有操作都是可能的。

+0

這是從另一個第三方庫嗎? – Daemoneye 2015-04-06 13:46:08

+0

對不起,我沒有提到它。 'pip安裝python-dateutil' – itzMEonTV 2015-04-06 13:47:46

0

您需要使用代替%Y%Y

time.strptime(timeStr,'%d/%m/%Y-%H:%M:%S.%f') 
0

的time.strptime語法%d/%m/%y-%H:%M:%S.%f是不正確,應該是

"%d/%m/%Y-%H:%M:%S.%f"

其中唯一的區別是,%y已成爲%Y 。究其原因是因爲從 the docs%y是沒有世紀數([00,99]),而%Y是世紀數,這是你使用的語法「2015」

測試,在Python 2.7.5和3.4 functinal .1

編輯:當我開始輸入這個內容時爲零答案,時間爲6個答案,對不起!

編輯#2:datetime.strptime函數類似,所以如果你想使用它,你也可以!

相關問題