分析人类可读的日期/时间文本。
parsedatetime的Python项目详细描述
分析日期时间
分析人类可读的日期/时间字符串。
ParseDateTime 1.0或更高版本需要Python2.6或更高版本。
虽然我们仍然使用Python2.6进行测试,但我们不能保证未来的更改不会在2.6下中断
安装
您可以使用以下命令安装ParseDateTime:
pip install parsedatetime
运行测试
从源目录:
make test
要在多个python版本上运行测试,请键入make tox:
$ make tox [... tox creates a virtualenv for every python version and runs tests inside of each] py27: commands succeeded py35: commands succeeded
这假设您已将要测试的版本作为 pyenv环境:
pyenv install -s 2.6.9 pyenv install -s 2.7.11 pyenv install -s 3.5.2 pyenv install -s pypy-5.3 pyenv global 2.7.11 3.5.2 2.6.9 pypy-5.3
测试取决于PYICU的安装。pyicu依赖于icu4c,而在os x上,icu4c需要自制:
brew install icu4c
和则需要传入安装后将显示的自制程序的LDFLAGS和CPPFLAGS:
LDFLAGS: -L/usr/local/opt/icu4c/lib CPPFLAGS: -I/usr/local/opt/icu4c/include
makefile包含了它们的os x默认值,因此您可能需要调整它们。
使用ParseDateTime
如何使用parseDateTime的示例:
import parsedatetime cal = parsedatetime.Calendar() cal.parse("tomorrow")
把它放到pythondatetime对象中:
from datetime import datetime time_struct, parse_status = cal.parse("tomorrow") datetime(*time_struct[:6])
使用时区支持解析datetime(使用pytz包):
import parsedatetime import pytz from pytz import timezone cal = parsedatetime.Calendar() datetime_obj, _ = cal.parseDT(datetimeString="tomorrow", tzinfo=timezone("US/Pacific"))
更详细的例子可以在examples目录中找到。
文档
默认情况下,生成的文档包含在docs目录中,也可以在https://bear.im/code/parsedatetime/docs/index.html
可以通过运行以下命令生成文档:
make docs
注释
Calendar类有一个名为ptc的成员属性,该属性是在类init方法作为实例期间创建的 共parsedatetime_consts.CalendarConstants()。
历史记录
多年来,parsedatetime中的代码已经在许多不同的语言(c、clipper、delphi)中实现,作为我工作过的不同定制/专有系统的一部分。遗憾的是,前面的代码在任何意义上都不是“开放的”。
当我去开源应用基金会工作,意识到chandler项目可以从我解析日期/时间文本的经验中受益时,我决定从头开始,使用python实现代码,并使其真正开放。
在完成了最初的概念并创建了一些可以向钱德勒的人展示的东西之后,在钱德勒的人的帮助下,代码现在已经发展到了它的当前状态,特别是darshana。