2016-04-07 186 views
-2

我得到的代碼應該將出生日期輸入轉換爲DD/MM/YYYY格式,但是例如當我輸入20/08/2000時它將日期看作1月3日。Java無法正確格式化日期

System.out.println(this.dob); 
DateFormat dateF = new SimpleDateFormat("dd/MM/YYYY"); 
Date birth = dateF.parse(this.dob); 
System.out.println(birth); 

,輸出

20/08/2000 
Mon Jan 03 00:00:00 GMT 2000 
+0

爲什麼人們不能學習'yyyy'和'YYYY'之間的區別?或者爲什麼他們甚至不打算重新檢查他們的模式是否正確?煩人。 – Tom

回答

4

在您的格式使用資本Y s表示一種叫做 「一週年」。

取而代之,您的格式使用小寫字母y s,這意味着您期望的年份。

new SimpleDateFormat("dd/MM/yyyy"); 
+0

八月份的時候,年份和星期一樣。週年是週數屬於的年份;僅在新年期間可能會偏離年份(例如,如果前一年的第52周延伸到1月)。 –

+2

@ OleV.V。這可能是對的,但改爲'yyyy'會將輸出更正爲正確的日期。 – rgettman