这两种时间格式有什么区别?

What is the difference between the two time formats?

我的目标是使用单一字符串时间格式 (UTC)。

我从两个字符串时间戳开始:

tf1 = '2020-07-11T17:25:48.675541+0000'
tf2 = '2020-07-11T17:25:49.125175Z'

RFC3339_FORMAT = '%Y-%m-%dT%H:%M:%S.%f%z'

当我断言它们是否都是 rfc3339 格式时,它们都通过了:

from datetiem import datetime

assert datetime.strptime(tf1, RFC3339_FORMAT)
assert datetime.strptime(tf2, RFC3339_FORMAT)

这是为什么?

tf1tf2有什么区别?

更一般地说,我在这里的断言有什么问题?

strptime() 中的 %z 格式说明符接受 ±HHMM[SS[.ffffff]] 格式、±HH:MM[:SS[.ffffff]] 格式或 Z 格式的时区,等同于 [=15] =].参见 documentation.

中的注释 (6)

请注意,这与 RFC 3339 不同,后者只允许 ±HH:MMZ。没有冒号的时区是 ISO 8601 格式。