C 中有 datetime.tzinfo 实现吗?

Are there any datetime.tzinfo implementations in C?

我一直在开发一个 Python 库,它使用 C 扩展模块来进行 ISO 8601 解析。

部分工作需要创建 tzinfo 对象,这是迄今为止解析中最慢的部分。调用 Python 的 tzinfo 实现(目前 pytz.FixedOffset)太慢了。

在Python3.7中,datetime.timezone终于接触到了C-API。我的代码利用了它,并通过使用 C 实现而不是 Python 实现了巨大的性能提升。我很想找到可用于 Python < 3.6 的类似 C 实现。也许是 3.7 的 "backport" datetime.timezone?

我见过许多 Python tzinfo 的实现(pytzdatetuil.tzdjango.utils.timezonepsycopg2.tz),但 none C.

是否有 tzinfo 的 C 实现(除了 datetime.timezone)?

进一步搜索后,我最终在 Pendulum's low level ISO 8601 parser 中找到了实现。

编辑:此实现最终用于 my backport of datetime.fromisoformat