python strptime 与 dateutil - 推荐使用

Its*_*Bee 3 python python-dateutil

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

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

所以我的问题是,您会推荐哪一个来添加和减去日期和日期时间以及在字符串和日期时间对象之间切换?另外 dateutil 是否仍然维护或者已经过时了?

多谢!- 莎莉

aba*_*ert 6

\n

看来我需要将 strptime 的 +01:00 转换为 0100

\n
\n\n

不,你不知道。

\n\n

一方面,标准格式是+0100,而不是0100

\n\n

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

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

因此,您试图解决的问题一开始就不存在。

\n\n
\n\n
\n

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

\n
\n\n

截至 2018 年 8 月 13 日,最后更新为dateutil2 天前。PyPI 的最后一次正式发布(版本 2.7.3)是在 3 个月前。

\n\n

所以,你的第二个问题也不存在。

\n\n
\n\n
\n

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

\n
\n\n

由于dateutil只为您提供与给您相同的datetime对象datetime,因此对于添加和减去日期和日期时间来说,两者都不是更好。

\n\n

对于字符串格式的转换,有时dateutil更方便,而且它还支持您不关心的更广泛的格式\xe2\x80\x94,但是对于您正在做的事情,它们都工作得很好,所以没有什么区别。如果您预计将来需要其他格式,则可能值得引入dateutil,但如果不需要,您最好坚持使用标准库。

\n