我正在将UTC时间字符串添加到当前仅包含Amsterdam(!)时间字符串的Bitbucket API响应中。 为了与其他地方返回的UTC时间字符串保持一致,所需的格式为2011-11-03 11:07:04
(后跟+00:00
,但这不是2011-11-03 11:07:04
)。
什么是从创建这样一个字符串( 无微秒组分)的最佳方法datetime
用微秒组件实例?
>>> import datetime
>>> print unicode(datetime.datetime.now())
2011-11-03 11:13:39.278026
我将添加出现在我身上的最佳选择作为可能的答案,但是可能会有更优雅的解决方案。
编辑:我应该提一下,我实际上并没有打印当前时间–我使用datetime.now
提供了一个简单的示例。 因此,该解决方案不应假定其接收到的任何datetime
实例都将包含微秒成分。
#1楼
在Python 3.6中:
from datetime import datetime
datetime.datetime.now().isoformat(' ', 'seconds')
'2017-01-11 14:41:33'
https://docs.python.org/3.6/library/datetime.html#datetime.datetime.isoformat
#2楼
这就是我做到的方式。 ISO格式:
import datetime
datetime.datetime.now().replace(microsecond=0).isoformat()
# Returns: '2017-01-23T14:58:07'
如果您不想使用ISO格式,则可以替换为'T':
datetime.datetime.now().replace(microsecond=0).isoformat(' ')
# Returns: '2017-01-23 15:05:27'
#3楼
我们可以尝试如下
import datetime
date_generated = datetime.datetime.now()
date_generated.replace(microsecond=0).isoformat(' ').partition('+')[0]
#4楼
我发现这是最简单的方法。
>>> t = datetime.datetime.now()
>>> t
datetime.datetime(2018, 11, 30, 17, 21, 26, 606191)
>>> t = str(t).split('.')
>>> t
['2018-11-30 17:21:26', '606191']
>>> t = t[0]
>>> t
'2018-11-30 17:21:26'
>>>
#5楼
我通常这样做:
import datetime
now = datetime.datetime.now()
now = now.replace(microsecond=0) # To print now without microsecond.
# To print now:
print(now)
输出:
2019-01-13 14:40:28
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3167223