用零填充整数(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)[重复]的主要内容,如果未能解决你的问题,请参考以下文章