You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java时间格式化问题:如何将单数字整数转为两位格式输出

修正Java printf时间格式化的问题

我来帮你快速搞定这个补零格式化的问题!你当前的printf语句写法有误——printf要求第一个参数是完整的格式字符串,而你把格式片段(比如:%02d)和数据变量混在一起传参了,这就导致格式化规则没被正确识别。

正确的写法应该是这样:

System.out.printf("First time: %02d:%02d%nSecond time: %02d:%02d%n", h1, m1, h2, m2);

为什么这样能生效?

  • 把所有格式规则都整合在第一个字符串参数里:%02d表示将整数格式化为两位数字,不足两位时前面补0,正好匹配你需要的单数字补零需求。
  • 后面的参数h1, m1, h2, m2要和格式字符串里的%02d一一对应:第一个%02d对应h1,第二个对应m1,以此类推。
  • 用%n代替\n是更稳妥的写法,它会自动适配不同操作系统的换行符规范。

测试效果示例

如果h1=10,m1=9,h2=9,m2=5,输出会是:

First time: 10:09
Second time: 09:05

这样就完美实现了你想要的补零格式化效果啦!

内容的提问来源于stack exchange,提问作者K Valentine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:33:38