【发布时间】:2019-05-05 09:57:24
【问题描述】:
我知道有很多问答可以从字符串中提取日期时间,例如dateutil.parser,以从字符串中提取日期时间
import dateutil.parser as dparser
dparser.parse('something sep 28 2017 something',fuzzy=True).date()
output: datetime.date(2017, 9, 28)
但我的问题是如何知道字符串的哪一部分导致此提取,例如我想要一个函数,它也返回“2017 年 9 月 28 日”
datetime, datetime_str = get_date_str('something sep 28 2017 something')
outputs: datetime.date(2017, 9, 28), 'sep 28 2017'
我可以搜索的任何线索或任何方向?
【问题讨论】:
-
您可以使用
strftime将日期时间对象转换为字符串(stackoverflow.com/questions/2158347/…) -
不幸的是,我认为这并不是一件特别简单的事情。 dateutil 找到的字符串不能保证是连续的,因此“它发生在 1947 年 9 月 29 日大约 8:45”将返回
1947-09-29 08:45。也就是说,fuzzy_with_tokens是一个很好的起点。它为您提供了与您想要的相反的结果。 -
@Paul 谢谢,我也在考虑
fuzzy_with_tokens,它列出了许多要排除的标记,但它包含空格('something ', ' ', 'something'),这使它有点具有挑战性。我将尝试挖掘一种方法并稍后在这个方向上发布我的解决方案 -
@SruthiV 谢谢,但我正在寻找原始字符串而不是将日期时间转换为字符串,日期时间包通过 append
.strftime("%Y-%m-%d")为这种转换提供了更简单的解决方案
标签: python-3.x datetime parsing python-dateutil