2012-08-07 47 views
2

我有一個日期格式爲MM/dd/yy格式。我從一個XML文件中獲取它。比方說,例如,它是10/03/11無法在java中解析日期年份

我執行它下面的代碼:

try { 
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
    System.out.println("dateStr: " + dateStr); 
    date = sdf.parse(dateStr); 
    System.out.println("dateStr After: " + sdf.format(date)); 
} catch(Exception e) { 
    System.out.println("Error when formatting date"); 
} 

輸出是:

 
dateStr: 10/03/11 
dateStr After: 10/03/0011 

我似乎無法得到它是10/03/2011。任何想法爲什麼?

回答

12

當您解析的日期有兩個字符的年份時,您的simpleDateFormatter也應該只有yy

編輯:

// First convert to date object 
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy"); 
System.out.println("dateStr: " + dateStr); 

Date date = sdf.parse(dateStr); 

SimpleDateFormat sdf2 = new SimpleDateFormat("MM/dd/yyyy"); 
sdf2.format(date); 

// Then, format it to get 2011 with another date format. 
System.out.println("dateStr After: " + sdf.format(date)); 
System.out.println("dateStr NEXT After: " + sdf2.format(date)); 
+0

真棒,謝謝。出於某種原因,我認爲它應該是你想要的格式,而不是它當前的格式。 – user489041 2012-08-07 16:30:11

4

這是一個分析異常...使用MM/dd/yy,而不是MM/dd/yyyy

像:

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy");