Python Strptime vs Dateutil - 推荐使用



我需要经常在字符串和日期时间对象之间进行转换 - 到目前为止,我一直使用strptime和strftime。 我开始使用谷歌日历 API,在那里我收到这样的字符串:'2018-03-17T09:00:00+01:00

似乎我需要将 +01:00 转换为 0100 以进行 strptime,这有点烦人。 虽然我对dateutil没有这个问题,但还有其他一些不便。我还看到dateutil的最后一次更新是在2016年,这似乎很奇怪。

所以我的问题是,您会推荐哪一个来添加和减少日期和日期时间以及在字符串和日期时间 obj 之间切换? 此外,dateutil 是否仍在维护或已过时?

多谢! -莎莉

似乎我需要将 +01:00 转换为 0100 以进行 strptime

不,你没有。

首先,标准格式是+0100,而不是0100

另一方面,strptime处理+01:00很好:

>>> datetime.datetime.strptime('2018-08-13T11:18:24+00:00', 
...                            '%Y-%m-%dT%H:%M:%S%z')
datetime.datetime(2018, 8, 13, 11, 18, 24, tzinfo=datetime.timezone.utc)
>>> datetime.datetime.strptime('2018-08-13T11:18:24+01:00', 
...                            '%Y-%m-%dT%H:%M:%S%z')
datetime.datetime(2018, 8, 13, 11, 18, 24, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600)))

因此,您尝试解决的问题

首先不存在。

虽然我对dateutil没有这个问题,但还有其他一些不便。我还看到dateutil的最后一次更新是在2016年,这似乎很奇怪。

截至 2018 年 8 月 13 日,dateutil的最后一次更新是在 2 天前。PyPI 的最后一个正式版本,版本 2.7.3,是在 3 个月前。

所以,你的次要问题也不存在。


所以我的问题是,您会推荐哪一个来添加和减少日期和日期时间以及在字符串和日期时间 obj 之间切换?

由于dateutil只为您提供了与datetime相同的datetime对象,因此两者都不适合添加和减去日期和日期时间。

对于字符串格式的转换,有时dateutil更方便,它还支持您不关心的更广泛的格式 - 但对于您正在做的事情,它们都可以正常工作,因此没有区别。如果您希望将来需要其他格式,则可能值得引入dateutil,但如果没有,则不妨坚持使用标准库。

dateutil最新版本(2.7.3(是在2018年5月。它只是在演职员表中的某处说"版权2016"。此外,该文档讨论了未来版本的策略,因此它似乎非常活跃。我建议更喜欢它而不是strptime.但是,请务必获取最新版本。以前的版本在转换您正在使用的 ISO 日期时存在错误。

最新更新