2016-04-07 143 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