打印和格式输出

时间:2011-11-24 10:10:38

标签: python

我有一个简单的脚本:

now = datetime.datetime.now()
print "%d%d%d%d%d" % ( now.year, now.month, now.day, now.hour, now.minute )

结果:

20111124149

如何获得结果:

201111241409

4 个答案:

答案 0 :(得分:7)

方法一:使用%02d代替%d。这可以填充宽度为2的前导零。

print "%02d%02d%02d%02d%02d" % (now.year, now.month, now.day, now.hour, now.minute)

方法二,正确的方法:使用datetime.strftime

print now.strftime('%Y%m%d%H%M')

有关格式字符串的说明,请参阅Python文档中的strftime() and strptime() Behavior

答案 1 :(得分:4)

指定数字的宽度为2并填充为零:

now = datetime.datetime.now()
print "%04d%02d%02d%02d%02d" % ( now.year, now.month, now.day, now.hour, now.minute )

如果我们打破其中一个组件,我们会得到:

  • %标志着替换目标的开始。
  • 0使结果为零填充。
  • 2表示结果应为2个字符宽。
  • d表示它是小数值。

更多信息:

答案 2 :(得分:1)

我建议采用这种方法:

print "{0:02d}{1:02d}{2:02d}{3:02d}{4:02d}".format(now.year, now.month, now.day, 
                                                   now.hour, now.minute)

format - 方法应优先于旧格式化语法。您可以找到有关如何编写格式字符串here的更多信息。

答案 3 :(得分:1)

now = datetime.datetime.now()
print "%d%02d%02d%02d%02d" % (now.year, now.month, now.day, now.hour, now.minute)