我正在将 UTC 时间字符串添加到当前仅包含阿姆斯特丹 (!) 时间字符串的 Bitbucket API 响应中。为了与其他地方返回的 UTC 时间字符串保持一致,所需的格式是 2011-11-03 11:07:04
(后跟 +00:00
,但这并不密切)。
从 datetime
实例 with 微秒组件创建这样一个字符串(没有 微秒组件)的最佳方法是什么? p>
>>> import datetime
>>> print unicode(datetime.datetime.now())
2011-11-03 11:13:39.278026
我将添加我想到的最佳选项作为可能的答案,但可能会有更优雅的解决方案。
编辑:我应该提一下,我并没有实际上打印当前时间——我使用 datetime.now
来提供一个简单的示例.因此,该解决方案不应假定它接收到的任何 datetime
实例都将包含微秒组件。
最佳答案
如果您想以不同于标准格式的特定格式格式化 datetime
对象,最好明确指定该格式:
>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
见 the documentation of datetime.strftime()
%
指令的解释。
从 Python 3.6 开始,isoformat()
方法足够灵活,也可以生成这种格式:
datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
关于Python datetime 到没有微秒组件的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7999935/