国际邮政地址格式化工具
项目描述
前缀日期解析器
这是一个解析具有不同精度级别的日期的辅助类。例如,数据源可能将日期表示为 2001
、2001-4
或 2001-04-02
,意味着只知道年份、月份或日期。此库将此类部分日期处理成结构化格式,并允许其验证和重新格式化(例如,将 2001-4
转换为 2001-04
)。
该库不支持ISO 8601和RFC 3339标准的复杂性,包括日期范围和日历周/年中的日期表示法。
安装
使用PyPI安装prefixdate
$ pip install prefixdate
用法
该库提供各种辅助函数来解析和格式化部分日期
from prefixdate import parse, normalize_date, Precision
# Parse returns a `DatePrefix` object:
date = parse('2001-3')
assert date.text == '2001-03'
date = parse(2001)
assert date.text == '2001'
assert date.precision == Precision.YEAR
date = parse(None)
assert date.text is None
assert date.precision == Precision.EMPTY
# This will also be the outcome for invalid dates!
# Normalize to a standard string:
assert normalize_date('2001-1') == '2001-01'
assert normalize_date('2001-00-00') == '2001'
assert normalize_date('Boo!') is None
# This also works for datetimes:
from datetime import datetime
now = datetime.utcnow().isoformat()
minute = normalize_date(now, precision=Precision.MINUTE)
# You can also feed in None, date and datetime:
normalize_date(datetime.utcnow())
normalize_date(datetime.date())
normalize_date(None)
您还可以使用类似datetime
构造函数的parse_parts
辅助函数
from prefixdate import parse_parts, Precision
date = parse_parts(2001, '3', None)
assert date.precision == Precision.MONTH
assert date.text == '2001-03'
格式字符串
对于尚未存储为ISO 8601类似字符串格式的日期,您可以提供一个或多个格式字符串供datetime.strptime
使用。这些格式字符串将被分析以确定预期的日期精度。
from prefixdate import parse_format, parse_formats, Precision
date = parse_format('YEAR 2021', 'YEAR %Y')
assert date.precision == Precision.YEAR
assert date.text == '2021'
# You can try out multiple formats in sequence. The first non-empty prefix
# will be returned:
date = parse_formats('2021', ['%Y-%m-%d', '%Y-%m', '%Y'])
assert date.precision == Precision.YEAR
assert date.text == '2021'
注意事项
- 日期时间总是转换为UTC并变为无时区信息(tzinfo被移除)
- 尚未处理毫秒。
- 不处理无效的日期,如2月31日。
项目详情
关闭
prefixdate-0.4.1.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 707116ce720c61ef16d0b6c649ef0163591d24b33c5348bd645562189e1305dc |
|
MD5 | 067ef012e023a72127e2f8097990bf87 |
|
BLAKE2b-256 | 7217eecc4c86b06ae6a18369c60b3da090d5a4161864bda2d67e1cf1b858a340 |
关闭
prefixdate-0.4.1-py2.py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 855e655d63a1466bc97346b0d88ee592918ac029042f74695b182033c74120dd |
|
MD5 | 8553e12ec5279954447fd521f27e38d0 |
|
BLAKE2b-256 | 742cce1f82f1be43e4a93dd327c4188a097dfc70fb7b15c2ba104a8c6aa5a735 |