首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >打印和格式化输出

打印和格式化输出
EN

Stack Overflow用户
提问于 2011-11-24 18:10:38
回答 4查看 1.5K关注 0票数 2

我有一个简单的脚本:

代码语言:javascript
运行
复制
now = datetime.datetime.now()
print "%d%d%d%d%d" % ( now.year, now.month, now.day, now.hour, now.minute )

结果:

代码语言:javascript
运行
复制
20111124149

如何获取结果:

代码语言:javascript
运行
复制
201111241409
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-24 18:16:16

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

代码语言:javascript
运行
复制
now = datetime.datetime.now()
print "%04d%02d%02d%02d%02d" % ( now.year, now.month, now.day, now.hour, now.minute )

如果我们分解其中一个组件,我们得到:

  • %标记替换的开始target.
  • 0使结果zero-padded.
  • 2表示结果应该是2个字符wide.
  • d表示它是一个十进制值。

更多信息:

  • String Formatting Operations in the Python manual
票数 4
EN

Stack Overflow用户

发布于 2011-11-24 18:17:11

方法一:使用%02d而不是%d。此填充最大宽度为2,前导为零。

代码语言:javascript
运行
复制
print "%02d%02d%02d%02d%02d" % (now.year, now.month, now.day, now.hour, now.minute)

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

代码语言:javascript
运行
复制
print now.strftime('%Y%m%d%H%M')

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

票数 7
EN

Stack Overflow用户

发布于 2011-11-24 18:15:04

我建议使用这种方法:

代码语言:javascript
运行
复制
print "{0:02d}{1:02d}{2:02d}{3:02d}{4:02d}".format(now.year, now.month, now.day, 
                                                   now.hour, now.minute)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8255309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档