为什么 python 2.7 不像 JavaScript 那样在 UTC 日期时间对象的同种格式字符串的末尾包含 Z 字符(Zulu 或零偏移量)?
>>> datetime.datetime.utcnow().isoformat()
'2013-10-29T09:14:03.895210'
而在 javascript 中
>>> console.log(new Date().toISOString());
2013-10-29T09:38:41.341Z
原文由 Murali Mopuru 发布,翻译遵循 CC BY-SA 4.0 许可协议
Python
datetime
对象默认没有时区信息,没有它,Python 实际上违反了 ISO 8601 规范( 如果没有给出时区信息,则假定为本地时间)。您可以使用 pytz 包 获取一些默认时区,或直接子类tzinfo
自己:然后您可以手动将时区信息添加到
utcnow()
:请注意,这确实符合 ISO 8601 格式,它允许
Z
或+00:00
作为 UTC 的后缀。请注意,后者实际上更符合标准,时区通常是如何表示的(UTC 是一个特例。)