2016-08-09 3 views
1

私はDDLRecordLocalServiceUtil.addRecord()で自分のDDLにレコードを追加しようとしていますが、フィールドマップに与えるフォーマットを見つけることができません。常に1/1/70 "。このようI'doingLiferay DDLRecord日付形式

Map<String,Serializable> test = new HashMap<String, Serializable>(); 
    test.put("date-value", "21/04/1983"); 
    test.put("number-value", 15);[/code] 

私は "1983年4月21日" とし、してみました - の代わりに/それはいつも私の日付を無視...

誰でも助けることができますか?

おかげ

+0

あなたはミリ秒単位の時間でそれを試してみましたコメント"date-value"、myDate.getTime()) '?実装を正しく読めば、これはうまくいくかもしれません。それ以外の場合は、明示的な 'Fields'パラメータでメソッドを試すことができます。 –

答えて

0

あなたは、値の直列化可能オブジェクトを渡しているので、Liferayは"04/21/1983"Dateで、それを文字列として挿入することを知らない文字列です。 FOUND

SimpleDateFormat dateFormatter = new SimpleDateFormat("mm/dd/yyyy"); 
test.put(dateFormatter.parse("21/04/1983")); 

SOLUTION:私はあなたがDateオブジェクトを渡すと日付にあなたの文字列を変換するためにSimpleDateFormaterを使うべきだと思う `test.put(:関連項目

+1

あなたは 'dd/mm/yyyy'と' test.put( "date-value"、...) 'を意味しますか?しかし、DDLRecordLocalServiceImpl.toFields(long、Map )は、あなたが何を追加しても常に文字列に変換するので、これはどちらもうまくいきません。String value = String.valueOf(fieldsMap私はあなたの名前を覚えていますか? –

+0

ああ、申し訳ありませんが、悪い日だったに違いないでしょう。また、2番目の部分については、タイムスタンプを設定することが正しいかもしれません。 – KLajdPaja

+0

**ソリューションは@ tobias-liefke ** Calendarオブジェクトを使用し、日付を「date-value」に渡します(私の例では)YourCalendarDate.getTimeInMillis()に渡します。 – Cryonos