2012-11-21 133 views
0

我有3個int變量月份,日期和年份。日期格式Java?

如何將它們轉換爲java.util.Date對象(或其他)。

,例如,每個月= 12,時間= 20年= 2011

應該中等日期格式打印:**Dec 20, 2011**

非常感謝您!

編輯我在這裏嘗試:

String yourBirthDay = Integer.toString(birthMonth) + "." + Integer.toString(birthDay) + "." + Integer.toString(birthYear); 
     DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT); 

     try { 
      Date date = format.parse(yourBirthDay); 
      System.out.println("Your birth date is : " + date.toString()); 

     } catch (ParseException pe) { 
      System.out.println("ERROR: could not parse date in string \"" 
        + yourBirthDay + "\""); 
     } 

回答

6

我沒有使用Calendar.set(int year,int month, int date)這個小測試:

@Test 
public void testDate() throws ParseException { 

    int year = 2011, month = 12, date = 20; 

    Calendar calendar = Calendar.getInstance(); 

    calendar.set(year, month - 1, date); 

    Date javaDate = calendar.getTime(); 

    // SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy"); 

    DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM); 

    String stringDate = format.format(javaDate); 

    assertEquals("Dec 20, 2011", stringDate); 

} 

您需要從本月1移除,因爲java.util.Calendar中的適用於基​​於零個月。

+0

你可以編輯它只使用DateFormat(而不是SimpleDateFormat)??? –

+2

'DateFormat.getDateInstance(DateFormat.SHORT)'將返回'12/20/11',而不是2011年12月20日,是嗎? – ElderMael

+1

編輯,只需使用'DateFormat.MEDIUM' – ElderMael