将完整字符串类型time转换为datetime类型-Python

将完整字符串类型time转换为datetime类型-Python,python,python-2.7,datetime,python-datetime,Python,Python 2.7,Datetime,Python Datetime,我有一个unicode字符串u'May 12,2014 8:00:40 PM',我想把它转换成日期时间对象,但我不想要时间戳,只想要日期 输出应为2014/5/12或2014/05/12 我试着用strtime,但没用。可能是我错过了什么 /usr/lib/python2.7/_strptime.pyc in _strptime(data_string, format) 326 if len(data_string) != found.end(): 327

我有一个unicode字符串
u'May 12,2014 8:00:40 PM'
,我想把它转换成日期时间对象,但我不想要时间戳,只想要日期

输出应为
2014/5/12
2014/05/12

我试着用strtime,但没用。可能是我错过了什么

/usr/lib/python2.7/_strptime.pyc in _strptime(data_string, format)
    326     if len(data_string) != found.end():
    327         raise ValueError("unconverted data remains: %s" %
--> 328                           data_string[found.end():])
    329 
    330     year = None

ValueError: unconverted data remains:   1:33PM
我已经看过这些线了


datetime.datetime.strtime()需要解析所有输入字符串。如果您在2014年5月12日晚上8:00:40通过
u'
,您需要说明所有字符

可以拆分时间部分,也可以解析时间部分,然后通过对生成的
datetime.datetime()
对象调用
.date()
忽略该部分

只包括时间更容易:

dateobj = datetime.datetime.strptime(inputstring, '%B %d, %Y %I:%M:%S %p').date()
这将为字符串的日期部分提供一个
datetime.date()
对象

时间部分的切割可以通过
str.rsplit()
调用完成,限制为2次拆分:

dateobj = datetime.datetime.strptime(inputstring.rsplit(None, 2)[0], '%B %d, %Y').date()
我也在这里调用了
.date()

演示:


我试着用strtime,但没用。它怎么帮不了你?您得到了什么错误,或者输出结果如何不是您想要的?您已经“看到了这些线程”。你从他们身上学到了什么?你还想知道什么?你读过吗?您可能会发现这很有用。您希望对输入字符串进行切片以不包含时间戳,或者也解析时间部分
strtime()
需要分析所有输入字符串。@user3628682:然后包含逗号;我现在已经这么做了。@user3628682:也许吧;在这里,
%b
起作用(
May
缩写为
May
),但
%b
表示全月名,
%b
表示缩写月份。看看其他例子;如果您看到2014年3月12日<代码>您需要使用
%b
,如果它使用2014年3月12日,您需要使用
%b
@user3628682:不。您不能删除它,因为它现在有一个向上投票的答案。你的职位上有两张重复的选票,还没有被搁置;其他人必须同意这是一个骗局。最后但并非最不重要的一点是,重复的标杆充当了标志杆;如果你的文章被当作复制品关闭,那么人们使用指向你的文章的搜索关键词就可以从那里找到一篇规范的文章。
>>> import datetime
>>> inputstring = u'May 12, 2014 8:00:40 PM'
>>> datetime.datetime.strptime(inputstring, '%B %d, %Y %I:%M:%S %p').date()
datetime.date(2014, 5, 12)
>>> datetime.datetime.strptime(inputstring.rsplit(None, 2)[0], '%B %d, %Y').date()
datetime.date(2014, 5, 12)