我有一个像这样的时间字符串:
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
答案 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功能类似,所以如果你也想使用它,你可以!