我有一个简单的脚本:
now = datetime.datetime.now()
print "%d%d%d%d%d" % ( now.year, now.month, now.day, now.hour, now.minute )
结果:
20111124149
如何获得结果:
201111241409
答案 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)