这是一个老问题,但我也有同样的问题,发现这篇文章宣布了 datautil,它旨在处理如下日期:
- 遥远的过去和未来的日期,包括 BC/BCE 日期
- 各种格式的日期:1890 年 1 月、1890 年 1 月、1890 年 12 月 1 日、1890 年春季等
- 不同精度的日期:例如 1890、1890-01(即 1890 年 1 月)、1890-01-02
- 不精确的日期:c1890、1890?、fl 1890 等
安装只是
pip install datautil
到目前为止,我只探索了几分钟,但注意到它不接受 str 作为参数(仅 unicode)并且它实现了自己的日期类(Flexidate,'ISO8601 的略微扩展版本'),这是排序也许有用。
>>> 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 ”(c.,ca,ca.,circ。或 cca。)的日期的东西。
>>> ca = parse(u'ca 1900')
<class 'datautil.date.FlexiDate'> [UNPARSED: ca 1900]
哦,好吧-我想我总是可以发送拉取请求;-)