擅长:python、mysql、java
<p>最简单的方法是使用切片来切掉微秒的最后三个数字:</p>
<pre><code>def format_time():
t = datetime.datetime.now()
s = t.strftime('%Y-%m-%d %H:%M:%S.%f')
return s[:-3]
</code></pre>
<p>我强烈建议你切碎。我曾经写过一些日志代码,它舍入了时间戳而不是切碎,当舍入改变了最后一个数字时,我发现它实际上有点混乱。有一些定时代码在某个时间戳停止运行,但由于舍入,有一些日志事件具有该时间戳。更简单,更容易预测的只是砍。</p>
<p>如果你真的想把数字四舍五入而不仅仅是切碎,那就要多做一点工作,但并不可怕:</p>
<pre><code>def format_time():
t = datetime.datetime.now()
s = t.strftime('%Y-%m-%d %H:%M:%S.%f')
head = s[:-7] # everything up to the '.'
tail = s[-7:] # the '.' and the 6 digits after it
f = float(tail)
temp = "{:.03f}".format(f) # for Python 2.x: temp = "%.3f" % f
new_tail = temp[1:] # temp[0] is always '0'; get rid of it
return head + new_tail
</code></pre>
<p>显然,你可以用更少的变量来简化上面的内容;我只是希望它很容易理解。</p>