将String转换为Time Python

时间:2015-04-06 13:37:41

标签: 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:时间数据'07 /01 / 2015-14:31:58.520'与格式不匹配   '%d /%米/%Y-%H:%M:S.%F'

我的python版本是2.7.7

5 个答案:

答案 0 :(得分: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 :(得分:1)

年份应该是资本 Y (%Y代替%y)

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

答案 2 :(得分:0)

要获取datetime个对象,请使用python-dateutil

安装

pip install python-dateutil

然后

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个对象进行所有操作。

答案 3 :(得分:0)

您需要使用%Y而不是%y

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

答案 4 :(得分:0)

time.strptime语法%d/%m/%y-%H:%M:%S.%f不正确,应该是

  

"%d /%米/%Y-%H:%M:%S%F"

唯一的区别是%y已成为%Y。原因是因为 the docs %y没有世纪号([00,99]),而%Y是世纪号,这是你使用的语法" 2015& #34;

python 2.7.5和3.4.1中的测试和功能

编辑:当我开始输入此内容时,零回答,发布时间后有6个回答,对不起!

编辑#2:datetime.strptime功能类似,所以如果你也想使用它,你可以!