2017-03-22 13 views
-1

datepicker私は生年月日を挿入します。たとえば、"1994/03/26"を文字列として挿入します。SimpleDateFormatは日付オブジェクト内の月を変更します

私は日付オブジェクトに私の文字列を解析し、このようにフォーマットを変更することにより、DATEFORMATを変更したいバックエンドで

Date dateOfBirth1 = new SimpleDateFormat("yyyy/mm/dd").parse(client.getDateOfBirth());//1994/03/26 
String dateOfBirth = new SimpleDateFormat("dd-MM-yy").format(dateOfBirth1); 

問題がある:それはあるべきときdateOfBirthは、26/01/94に日付を変更26/03/94

どうしてですか?何か助けをいただければ幸いです

+3

を見てください与えるパターンでの議事録や月の情報を変更していますあなたは 'mm'と' MM'を使っています。ドキュメンテーションを読んだ場合、1つは数分、もう1つは数ヶ月間です。IIRCの 'MM'はその月なので、最初の書式は' 'yyyy/MM/dd ''でなければなりません。あなたの書式は '03'を分として解釈し、従って月は1月とみなされます。 – Thomas

+0

私は確かに分かりませんが、おそらく "mm"と "MM"について間違いがあります –

答えて

5

mmは分であり、あなたの形式はyyyy/mm/ddです。実際に解析しているのは年/分/日です。

2行目に正しく書いたとおり、探しているのは、月の形式:です。あなたのケースの正しい日付形式はyyyy/MM/ddになります。予想される動作を取得するには、

Date dateOfBirth1 = new SimpleDateFormat("yyyy/MM/dd").parse(client.getDateOfBirth());//1994/03/26 
String dateOfBirth = new SimpleDateFormat("dd-MM-yy").format(dateOfBirth1); 

SimpleDateFormat Reference

+0

ありがとうございました! :) – MattiasH

1

このBEHにコードを変更します。正しい、MMとMMは...てSimpleDateFormatで異なる意味を持っているので、あなたがのSimpleDateFormatオブジェクト

SimpleDateFormat("yyyy/mm/dd") 

SimpleDateFormat("dd-MM-yy") 
関連する問題