2012-08-07 35 views
1

我想在日期前添加一個0如果它是單個數字。所以我做了一個代碼:0被添加,但沒有顯示爲兩位數當轉換爲int

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只會打印707。其實我想製作int07而不是7。那麼打印07應該做些什麼修改?

NB - 我沒有提及if-else故意檢查單位或多位數據,因爲它沒有問題!

+0

不要推倒重來。查看討論'SimpleDateFormat'的答案。 – 2012-08-07 18:52:15

回答

0
public String addZero(String input) { 
    if(input.length() == 1) 
     return "0" + input; 
    return input; 
} 

這種方法只會增加一個零字符串的開頭,如果是1位,所以如果你把它「1」,ITLL返回「01」,如果你把它「11」,ITLL回報「11」。我認爲這就是你想要的。

5

使用SimpleDateFormat來格式化日期。

您的圖案將會是dd

SimpleDateFormat sdf = new SimpleDateFormat("dd"); 
System.out.println(sdf.format(new Date())); 
0

您是否想過使用SimpleDateFormat對象?這會給你格式化的高度控制。文字dd將爲您提供零填充日價值。

0

一個快速的解決辦法是:

int change = Integer.parseInt(added); 
if (change < 10) { 
    System.out.println("0" + change); 
} else { 
    System.out.println(change); 
} 

但是,更好的解決方案是使用NumberFormat class

+0

我不想僅打印。我想將'int'設置爲'07' – Mistu4u 2012-08-07 17:04:13

1

試試這個使用SimpleDateFormat

System.out.println(new SimpleDateFormat("dd").format(new Date()));