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
相关产品推荐
相关产品推荐

