这是一个老问题,但我有同样的一个,发现this article announcing datautil,其目的是处理日期,如:
- 日期在遥远的过去和未来,包括BC/BCE日期
- 日期在野生多种格式:扬1890年一月1890年,1890年12月1日,1890年春季变化等精密的
- 日期:例如: 1890年,1890年至1801年(即1890年1月),1890年1月2日
- 不精确的日期:c1890,1890年?1890年佛罗里达州等
安装只是
pip install datautil
我只对它进行了几分钟的探索,但注意到它不接受str作为参数(只有unicode),它实现了它自己的日期类(Flexidate,'ISO8601'的稍微扩展版本),它是sort也许有用。
>>> from datautil.date import parse
>>> parse('Jan 1890')
error: 'str' object has no attribute 'read'
>>> fd = parse(u'Jan 1890')
<class 'datautil.date.FlexiDate'> 1890-01
fd.as_datetime()
>>> datetime.datetime(1890, 1, 1, 0, 0)
>>> bc = parse(u'2000BC')
<class 'datautil.date.FlexiDate'> -2000
但唉...
>>> bc.as_datetime()
ValueError: year is out of range
不幸的是我,我一直在寻找的东西,可以处理日期与 “circa”
>>> ca = parse(u'ca 1900')
<class 'datautil.date.FlexiDate'> [UNPARSED: ca 1900]
哦(C,CA约,保监会或CCA。) - 我我总是可以发送一个拉请求;-)
你的日期模糊的性质可能会滚动你自己的日期时间类。 – 2013-04-07 01:28:57
@JoelCornett是的,但实际价值的不确定性本身就是真正的价值。因此,任何可以做日期时间(处理BC和timedeltas)的[模块或数据结构](http://stackoverflow.com/a/19869864/623735)都应该用于Roger的数据。如果罗杰的模糊性只能用自然语言来定义,那么他需要量化他应用程序某处的模糊程度(否则他会将他的数量记录为字符串),那么他需要情感分析(自然语言处理)。 – hobs 2013-11-08 22:51:28