我正在将UTC时间字符串添加到Bitbucket API响应中,该响应目前只包含阿姆斯特丹(!)时间弦。为了与其他地方返回的UTC时间字符串保持一致,需要的格式是2011-11-03 11:07:04 (后面跟着+00:00,但这不是关系)。
从带有微秒组件的datetime实例中创建这样一个字符串(没有微秒组件)的最佳方法是什么?
>>> import datetime
>>> print unicode(datetime.datetime.now())
2011-11-03 11:13:39.278026我将添加我所想到的最佳选择,作为一个可能的答案,但很可能会有一个更优雅的解决方案。
编辑:--我应该提到,我实际上并没有打印当前时间--我使用datetime.now提供了一个快速示例。因此,解决方案不应假设它接收到的任何datetime实例都将包括微秒组件。
发布于 2011-11-03 18:22:00
如果要将datetime对象格式化为与标准格式不同的特定格式,最好显式指定该格式:
>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'有关the documentation of datetime.strftime()指令的说明,请参见%。
从Python3.6开始,isoformat()方法非常灵活,可以生成这种格式:
datetime.datetime.now().isoformat(sep=" ", timespec="seconds")发布于 2011-11-03 18:19:44
>>> import datetime
>>> now = datetime.datetime.now()
>>> print unicode(now.replace(microsecond=0))
2011-11-03 11:19:07发布于 2017-01-11 06:43:30
在Python 3.6中:
from datetime import datetime
datetime.now().isoformat(' ', 'seconds')
'2017-01-11 14:41:33'https://docs.python.org/3.6/library/datetime.html#datetime.datetime.isoformat
https://stackoverflow.com/questions/7999935
复制相似问题