用零填充整数(Java)[重复]

Posted

技术标签:

【中文标题】用零填充整数(Java)[重复]【英文标题】:Left padding an integer with zero (Java) [duplicate] 【发布时间】:2014-10-05 17:04:03 【问题描述】:

我已经检查过了,显然您不能将零填充到整数上。转换为字符串并返回整数也不起作用。虽然,我想要做的是将整数用于 FOR 循环,然后使用连接发送到 JPQL 查询,这需要日期格式为 XML 公历(YYYY-MM-DD HH:MM:SS) .

解决我的问题的一种方法是在将格式化程序发送到 JPQL 查询之前使用它。我的意思是:在我的情况下,有没有更好的方法来做到这一点?

以下是相关代码:

for (int month = startMonth; month <= endMonth; month++) 

                    inputDates = "SELECT COUNT(d) FROM Datafile d WHERE d.datafileCreateTime BETWEEN ts  2013-" +month+ "-01 00:00:00  AND ts 2013-" +month+ "-02 23:59:59";
                    ...

【问题讨论】:

你有没有费心去读一些关于String.format()的东西?? 我会研究format 类,它可以让您指定数字在小数点前后的字符数。这应该可以让你实现你想要的。 是docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html 你在找什么?您可以将 int 转换为带有前导零的两位数。 很难说这是什么重复,因为问题开始是关于用零填充整数但变成格式化日期。 有没有办法在 SQL 查询中使用 GROUP BY,而不是运行多个查询来按月获取结果? 【参考方案1】:

这个怎么样:

String.format("%010d", 123456);

详情:Formatter

org.apache.commons.lang.StringUtils.leftPad("123456", 10, "0");

详情:StringUtils

【讨论】:

【参考方案2】:

如果我理解您的问题,您需要特定格式的Date,我建议您使用SimpleDateFormat。也就是说,像 -

DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf.format(new Date());
System.out.println(date);

输出是

2014-08-12 11:06:19

【讨论】:

以上是关于用零填充整数(Java)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

用零填充数字的嵌套 IF [重复]

用零填充缺失的用户输入

Python中的整数到十六进制转换

理解数组行为的算法[重复]

boost::lexical_cast int 用零填充字符串

Angular2 或 TypeScript 用零填充字符串