2016-04-07 10 views
-2

コードは、生年月日の入力をDD/MM/YYYY形式に変換する必要があります。たとえば、20/08/2000を入力すると、3月1日の日付が表示されます。 。あなたの形式で資本Y Sを使用してJavaの書式設定の日付が正しくない

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

「yyyy」と「YYYY」の違いを人々が知ることができないのはなぜですか?あるいは、彼らのパターンが正しいかどうかを再確認することをなぜ気にかけないのか?煩わしい。 – Tom

答えて

4

を出力

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

は "週の年" と呼ばれるものを意味します。

代わりに、小文字のyをご使用の形式で使用してください。これは、期待どおりの年を意味します。

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

8月には、年と週の年が同じです。週の年は、週の番号が属する年です。新年の周りだけが年から逸脱することがあります(例えば、前年の52週が1月に拡大する場合)。 –

+2

@ OleV.V。それは正しいかもしれませんが、 'yyyy'に変更すると出力が正しい日付に修正されます。 – rgettman