我想在日期前面添加一个0
,如果它是一位数。所以我做了一个代码:
public class Zero {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String zero="0";
Calendar cal = new GregorianCalendar();
int day1 = cal.get(Calendar.DAY_OF_MONTH);
String seven1=Integer.toString(day1);
System.out.println(""+seven1);
System.out.println(""+day1);
String added=zero.concat(seven1);
System.out.println(""+added);
int change=Integer.parseInt(added);
System.out.println(""+change);
}
}
因此,当我打印change
时,它仅打印7
而非07
。实际上我想制作int
07
而不是7
。那么应该做些什么修改来打印07
?
NB - 由于没有任何问题,我没有故意提及if-else
检查一位数或多位数的日期!
答案 0 :(得分:5)
使用SimpleDateFormat格式化日期。
您的模式将为dd
。
SimpleDateFormat sdf = new SimpleDateFormat("dd");
System.out.println(sdf.format(new Date()));
答案 1 :(得分:1)
使用SimpleDateFormat
System.out.println(new SimpleDateFormat("dd").format(new Date()));
答案 2 :(得分:0)
public String addZero(String input) {
if(input.length() == 1)
return "0" + input;
return input;
}
该方法只会在字符串的开头添加零,如果它是1位数,所以如果你把它设为“1”,它将返回“01”,如果你把它设为“11”,它将返回“11” ”。我认为这就是你想要的。
答案 3 :(得分:0)
您是否考虑过使用SimpleDateFormat对象?这将使您可以高度控制格式。文本dd
将为您提供零填充日值。
答案 4 :(得分:0)
尝试使用http://docs.oracle.com/javase/1.4.2/docs/api/java/text/DecimalFormat.html
正确的用法是
int day = Calendar.Day_OF_Month;
DecimalFormat df = new DecimalFormat("00");
System.out.println(df.format(day));
另外,不要忘记java月份从0开始:/
答案 5 :(得分:0)
快速解决方案是:
int change = Integer.parseInt(added);
if (change < 10) {
System.out.println("0" + change);
} else {
System.out.println(change);
}
然而,更好的解决方案是使用NumberFormat class。