【问题标题】:Temporal Expression recognition in PythonPython中的时间表达识别
【发布时间】:2012-09-16 10:50:40
【问题描述】:

有没有人知道 Python 模块可以轻松提取时间表达式,例如 12/01/2011Monday, 12/3/1987 或其他(英文格式)?

希望避免构建大量的正则表达式。

【问题讨论】:

标签: python regex expression temporal


【解决方案1】:

在标准库中你不会找到全面的东西,但如果你安装dateutils,你可以这样做:

>>> from dateutils import parser
>>> parser.parse('January 12, 2012').strftime('%s')
'1326315600'
>>> parser.parse('01/12/2012').strftime('%s')
'1326315600'
>>> parser.parse('Sunday, 16/09/2012').strftime('%s')
'1347742800'

Martijn 有一点,所以这里是正常的表示 - 即datetime object

>>> parser.parse('Sunday, 16/09/2012')
datetime.datetime(2012, 9, 16, 0, 0)
>>> parser.parse('01/12/2012')
datetime.datetime(2012, 1, 12, 0, 0)
>>> parser.parse('January 12, 2012')
datetime.datetime(2012, 1, 12, 0, 0)

【讨论】:

  • 为什么在你的例子中使用.strftime('%s')
  • 证明它正在正确解析值。它通常返回日期时间对象。
  • 没错,那些不能证明解析成功?
【解决方案2】:

使用标准的datetime.datetime.strptime()

例子:

In : datetime.datetime.strptime("12/01/2012", "%m/%d/%Y")
Out: datetime.datetime(2012, 12, 1, 0, 0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    相关资源
    最近更新 更多