将一个完整的字符串类型的时间转换为Python的datetime类型

2024-04-26 12:58:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

输出应该是2014/5/122014/05/12

我试着用strptime,但没用。可能是我错过了别的什么?在

/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

我已经看过这些线了

Converting string into datetime

convert string to date type python

Convert string into Date type on Python


Tags: 字符串datastringtype时间unicodemayend
1条回答
网友
1楼 · 发布于 2024-04-26 12:58:17

datetime.datetime.strptime()需要解析输入字符串的所有。如果传入u'May 12, 2014 8:00:40 PM',则需要说明所有字符。在

要么分割时间部分,要么也解析时间部分,然后通过对结果datetime.datetime()对象调用.date()忽略该部分。在

只包括时间更容易:

dateobj = datetime.datetime.strptime(inputstring, '%B %d, %Y %I:%M:%S %p').date()

这为提供了一个datetime.date()对象,该对象是字符串的日期部分。在

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

^{pr2}$

我也在这里打了.date()。在

演示:

>>> 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)

相关问题 更多 >