解析可读的日期/时间文本。
项目描述
解析可读的日期/时间字符串。
parsedatetime版本1.0或更高版本需要Python 2.6或更高版本。
尽管我们还在使用Python 2.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-binary包安装PyICU,该包消除了源构建步骤。PyICU依赖于icu4c,在macOS上需要homebrew
brew install icu4c
Makefile包含macOS的默认值,因此您可能需要对其进行调整。
使用parsedatetime
如何使用parsedatetime的示例
import parsedatetime
cal = parsedatetime.Calendar()
cal.parse("tomorrow")
将其转换为Python datetime对象
from datetime import datetime
time_struct, parse_status = cal.parse("tomorrow")
datetime(*time_struct[:6])
使用pytz包支持时区的日期时间解析
import parsedatetime
import pytz
from pytz import timezone
cal = parsedatetime.Calendar()
datetime_obj, _ = cal.parseDT(datetimeString="tomorrow", tzinfo=timezone("US/Pacific"))
更详细的示例可以在示例目录中找到。
文档
生成的文档默认包含在docs目录中,也可以在线查看,网址为 https://bear.im/code/parsedatetime/docs/index.html
可以通过运行以下命令生成文档:
make docs
注意
Calendar 类有一个名为 ptc 的成员属性,该属性在类初始化方法中创建,为一个 parsedatetime_consts.CalendarConstants() 实例。
历史
parsedatetime 中的代码在过去几年中已经以许多不同的语言(C、Clipper、Delphi)实现,作为我参与的不同定制/专有系统的一部分。遗憾的是,之前的代码在任何意义上都不是“开放的”。
当我加入开源应用基金会并为开源项目工作,意识到 Chandler 项目可以从我对解析日期/时间文本的经验中受益时,我决定从头开始,使用 Python 实现,并将其真正开放。
在完成初始概念并创建可以展示给 Chandler 团队的东西之后,在 Chandler 团队的帮助下,代码已经发展到当前状态,特别是 Darshana 的帮助。
项目详情
下载文件
下载适合您平台的应用文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。