2012-12-18 101 views
0

我想在我的活動 我今天做這個代碼的日期和顯示器,但工程錯誤錯誤顯示日期

private int mYear; 
     private int mMonth; 
     private int mDay; 
String Date 
     final Calendar c = Calendar.getInstance(); 
        mYear = c.get(Calendar.YEAR); 
        mMonth = c.get(Calendar.MONTH); 
        mDay = c.get(Calendar.DAY_OF_MONTH); 
        Date = mDay + "-" + mMonth + "-" + mYear; 

它dispay 18-11-2012 這是不對的 ,但它讓我困惑,爲什麼一個月顯示11即使月份是12 有什麼不對?

回答

0

下面是做這件事的一個方式,日曆和SimpleDateFormat的,你想輕鬆格式輸出。

Calendar myCalendar = new GregorianCalendar(); 
    SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()); 
    formatter.setCalendar(myCalendar); 
    String dateString = formatter.format(myCalendar.getTime()); 

輸出:
19-12-2012

0
c.get(Calendar.MONTH); 

返回月份的索引(即1月份爲0)。所以沒有錯,這就是API ...

編輯

String date = mDay + "-" + (mMonth+1) + "-" + mYear; 

將正確顯示日期。

請注意,Java API提供DateFormat API以各種格式顯示日期(取決於用戶的區域設置)。使用它通常是更好的選擇。

+0

怎麼能展示給用戶一個月的權數在文本顯示之後因爲如果這樣11個月他和實際的月份是12 –

0

在mounths的Java的數量從0開始

+0

我怎麼能會混淆從1顯示它? –

+0

Date = mDay +「 - 」+(++ mMonth)+「 - 」+ mYear; – belyjz