ISO 8601日期/时间/持续时间解析器和格式化工具
项目描述
ISO 8601日期/时间解析器
isodate2是isodate的分支
此模块实现了ISO 8601日期、时间和持续时间解析。实现遵循ISO8601:2004标准,仅实现了标准中提到的日期/时间表示。如果标准中没有提到,则被视为不存在,而不是允许的选项。
例如,ISO8601:2004从未提到两位数的年份。因此,本模块不支持两位数的年份。(尽管它可能是有效的ISO日期,因为它没有明确禁止。)另一个例子是,当没有给出时间的时区信息时,它应解释为本地时间,而不是UTC。
由于此模块将ISO 8601日期/时间映射到标准Python数据类型,如date、time、datetime和timedelta,因此无法将所有可能的ISO 8601日期/时间转换为这些类型。例如,Python date和datetime类不允许日期在0001-01-01之前。此外,分数秒限制为微秒。这意味着如果解析器发现例如纳秒,它将四舍五入到微秒。
文档
有五种解析方法可用。
parse_time
:将ISO 8601时间字符串解析为time对象parse_date
:将ISO 8601日期字符串解析为date对象parse_datetime
:将ISO 8601日期时间字符串解析为datetime对象parse_duration
:将ISO 8601持续时间字符串解析为timedelta或Duration对象。parse_tzinfo
:将ISO 8601字符串中的时区信息部分解析为tzinfo对象。
由于ISO 8601允许定义年月作为持续时间,而timedelta不处理年月,因此该模块提供了一个Duration类,它可以几乎像timedelta对象一样使用(有一些限制)。然而,可以将Duration对象转换为timedelta对象。
还有所有支持数据类型的ISO格式化方法。每个xxx_isoformat方法都接受一个格式参数。默认格式始终是ISO 8601扩展格式。这是与datetime.isoformat相同的格式。
time_isoformat
:旨在创建默认格式为hh:mm:ssZ的ISO时间字符串。date_isoformat
:旨在创建默认格式为yyyy-mm-dd的ISO日期字符串。datetime_isoformat
:旨在创建默认格式为yyyy-mm-ddThh:mm:ssZ的ISO日期时间字符串。duration_isoformat
:旨在创建默认格式为PnnYnnMnnDTnnHnnMnnS的ISO持续时间字符串。tz_isoformat
:旨在创建默认格式为hh:mm的ISO时区字符串。strftime
:这是一个与Python的strftime基本兼容的重新实现,但只支持可以用于1900年之前日期的格式字符串。此方法还理解如何格式化datetime和Duration实例。
安装
python -m pip install isodate2
限制
- 解析器接受几种日期时间表示,这些表示根据ISO 8601标准应该是无效的。
- 对于日期和时间一起,此解析器接受基本和扩展格式的混合。例如,日期可以是基本格式,而时间可以接受扩展格式。它还允许日期时间字符串中的简短日期和时间。
- 对于不完整的日期,选择第一个日期。例如,19世纪的结果是日期1901-01-01。
- 尚未完全支持负的Duration和timedelta值。
更多信息
文档字符串和单元测试应提供关于方法和其限制的相当详细的信息。
源发布提供https://github.com/isodate/isodate中的setup.py脚本,可用于运行包含的单元测试。
源代码可在https://github.com/isodate/isodate获取。
另请参阅
isoduration是一个维护良好的库,旨在改进isodate
Python中ISO 8601持续时间的最新处理状态大致限于
isodate
提供的内容。我们在这里试图解决isodate
(如他们在自己的限制部分中所述)的缺点,以及我们对他们界面的几个烦恼,例如在处理类型方面缺乏一致性,以及使用正则表达式进行解析。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
isodate2-0.9.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5b0aa4b267cf1e6d2a16fbd62528b556cc7a3422ac81cb5464031172ba618dbf |
|
MD5 | cade7ec3a1604049f265a6cad6761602 |
|
BLAKE2b-256 | da7c08297948c8b7e56ab0f24100eb23facfc7913fce2ea4ff264308c6f989b2 |
isodate2-0.9.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1fdf6b33b1118c8e5995dd9ea1b48b54a39bfaa0527abc15e5379d31b3aff0fc |
|
MD5 | e725d1a496277e0b521662ef11954308 |
|
BLAKE2b-256 | 726a2184c48b48a2adbad501b7134c82bac39c48760a8589a44971e05ec14450 |