gpt4 book ai didi

Python UTC 日期时间对象的 ISO 格式不包括 Z(祖鲁语或零偏移)

转载 作者:IT老高 更新时间:2023-10-28 21:12:42 27 4
gpt4 key购买 nike

为什么 python 2.7 不像 JavaScript 那样在 UTC 日期时间对象的 isoformat 字符串的末尾不包含 Z 字符(Zulu 或零偏移)?

>>> datetime.datetime.utcnow().isoformat()
'2013-10-29T09:14:03.895210'

而在 javascript 中

>>>  console.log(new Date().toISOString()); 
2013-10-29T09:38:41.341Z

最佳答案

选项:isoformat()

Python 的 datetime 不支持 military timezone UTC 后缀,如“Z”后缀。以下简单的字符串替换可以解决问题:

In [1]: import datetime

In [2]: d = datetime.datetime(2014, 12, 10, 12, 0, 0)

In [3]: str(d).replace('+00:00', 'Z')
Out[3]: '2014-12-10 12:00:00Z'

str(d) 本质上与 d.isoformat(sep=' ')

相同

见:Datetime, Python Standard Library

选项:strftime()

或者你可以使用 strftime 来达到同样的效果:

In [4]: d.strftime('%Y-%m-%dT%H:%M:%SZ')
Out[4]: '2014-12-10T12:00:00Z'

注意:仅当您知道指定的日期为 UTC 时,此选项才有效。

见:datetime.strftime()


附加:人类可读的时区

更进一步,您可能对显示人类可读的时区信息感兴趣,pytzstrftime %Z 时区标志:

In [5]: import pytz

In [6]: d = datetime.datetime(2014, 12, 10, 12, 0, 0, tzinfo=pytz.utc)

In [7]: d
Out[7]: datetime.datetime(2014, 12, 10, 12, 0, tzinfo=<UTC>)

In [8]: d.strftime('%Y-%m-%d %H:%M:%S %Z')
Out[8]: '2014-12-10 12:00:00 UTC'

关于Python UTC 日期时间对象的 ISO 格式不包括 Z(祖鲁语或零偏移),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19654578/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com