条带时间Python部分匹配

条带时间Python部分匹配,python,Python,我的日期的格式如下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/G

我的日期的格式如下
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
回溯(最近一次呼叫最后一次):
文件“C:/Users/d774911/PycharmProjects/GlobalData/Test2.py”,第4行,在
date\u object=datetime.strtime('2014-02-23T18:42:26.000009','%Y-%m-%d')
文件“C:\Python34\lib\ \u strtime.py”,第500行,在\u strtime\u datetime中
tt,分数=_strtime(数据字符串,格式)
文件“C:\Python34\lib\\ u strtime.py”,第340行,在\ u strtime中
数据_字符串[found.end():])
ValueError:未转换的数据仍然存在:T18:42:26.000009

有什么想法吗?

您需要将字符串的剩余部分添加到日期格式。因此,将
'%Y-%m-%d'替换为
'%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)
如果您只需要
日期

>>> parse('2014-02-23T18:42:26.000009', fuzzy=True).date()
datetime.date(2014, 2, 23)
产出:2014-02-23


此外,您可以使用
条带('-')
返回包含['2014','02','23']

的列表,感谢您的及时回复。我有很多记录(超过600000条记录),无法使用上面相同的值匹配它们。想法?@user3089324欢迎。在这种情况下,您可以使用一些日期分析器,如
dateutil
@user3089324签出编辑!很好的解决方案!!!看起来像ISO8601格式。如果是这样的话,请看前面的问题:哦,还有:它不是“striptime”,它是
str
ing
p
arse
time
的复合词。Python函数以同名的POSIX函数命名。(有关详细信息,请参见
man 3 strtime
import re
time="2014-02-23T18:42:26.000009"
print re.sub('T.*','',time)