我的日期2014-02-23T18:42:26.000009
有以下格式。我想提取日期,所以我使用了以下代码:
from datetime import datetime
date_object = datetime.strptime('2014-02-23T18:42:26.000009', '%Y-%m-%d')
但是,我收到以下错误消息:
Traceback (most recent call last):
File "C:/Users/d774911/PycharmProjects/GlobalData/Test2.py", line 4, in <module>
date_object = datetime.strptime('2014-02-23T18:42:26.000009', '%Y-%m-%d')
File "C:\Python34\lib\_strptime.py", line 500, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "C:\Python34\lib\_strptime.py", line 340, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: T18:42:26.000009
有什么想法吗?
答案 0 :(得分:4)
您需要将字符串的剩余部分添加到日期格式。所以将'%Y-%m-%d' with
替换为'%Y-%m-%dT18:42:26.000009'
:
>>> date_object = datetime.strptime('2014-02-23T18:42:26.000009', '%Y-%m-%dT18:42:26.000009')
>>> date_object
datetime.datetime(2014, 2, 23, 0, 0)
或者作为一种更通用的方式,您可以使用dateutil.parser
:
>>> from dateutil.parser import parse
>>> parse('2014-02-23T18:42:26.000009', fuzzy=True)
datetime.datetime(2014, 2, 23, 18, 42, 26, 9)
如果您只想要date
:
>>> parse('2014-02-23T18:42:26.000009', fuzzy=True).date()
datetime.date(2014, 2, 23)
答案 1 :(得分:0)
import re
time="2014-02-23T18:42:26.000009"
print re.sub('T.*','',time)
输出:2014-02-23
此外,您可以使用 strip('-')
返回包含 [&#39; 2014&#39;,&#39; 02& #39;,&#39; 23&#39;]