2017-08-24 6 views
-1

リストに保存されている日付の形式を変更したいと思います。その日付のリストをfirebaseデータベースに保存します。しかし、dateListに格納されている日付を書式設定するときにエラーが発生します。 これは私のコードです:エラー:日付を新しい形式(Android)にフォーマットするときに、指定されたオブジェクトを日付としてフォーマットできません。

MainActivity.java

List<Date> dates = getDates(date1, date2); 
    ArrayList<String> dateStringList = new ArrayList<>(); 
    ArrayList<Date> dateList = new ArrayList<Date>(); 
    SimpleDateFormat format1 =new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 
    SimpleDateFormat format2 = new SimpleDateFormat("dd/MM/yyyy"); 
    for (Date date : dates) { 
     String dateStr = String.valueOf(date); 
     dateStringList.add(dateStr); 
    } 
    for (String dateString : dateStringList) { 
     try { 
      dateList.add(format1.parse(dateString)); 
      format2.format(dateList); ---> error here when formatting the date to format2 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 

    } 

    String date1 = format2.format(dateList); 
    dateModel data = new dateModel(dateList); 
    mReference.child(id).setValue(data); 

dateModel.java

public class dateModel { 
ArrayList<Date> date; 

public dateModel() {} 

public dateModel(ArrayList<Date> date) { 
    this.date = date; 
} 
public ArrayList<Date> getDate() { 
    return date; 
} 

public void setDate(ArrayList<Date> date) { 
    this.date = date; 
} 
} 

これを解決する方法はありますか? ありがとうございます。

+0

'dateList'は、ArrayListのですが、日付文字列 –

+1

ノートの単一のオブジェクトのみを置く:すべてのクラスがちなみにJavaの –

+0

で大文字で始める必要があり、あなたが直接Firebaseに' ArrayListの 'を書くことができるはずですカスタムクラスなし –

答えて

0

でなければなりません。

種類を確認してください。

formatメソッドは、日付ではなく、リストを取り、あなたは二つのフォーマット

List<Date> dates = getDates(date1, date2); 
ArrayList<String> dateStringList = new ArrayList<>(); 

SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy"); 

for (Date date : dates) { 
    try { 
     dateStringList.add(fmt.format(date)); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

} 

dateModel data = new dateModel(dateList); 
mReference.child(id).setValue(data); 

注意を必要とする理由私は文字列としてリストを保存すると、おそらく、視覚「以外の良いアイデアではないことが表示されません検査"。私の意見では、日付と時刻の書式設定はUIの責任であり、場合によってはミリ秒(date.getTime())を保存する方がクエリやフィルタリングが容易です。

+0

私は日付をフォーマットしたい場合は、最初に行うことは、それを文字列に変換し、リストの日付で解析することです。だから私は2つの異なる形式を使用します。しかし、今、私はそれがフォーマットするために文字列を使用することによって動作できるかどうかを理解しています。あなたの助けと答えに感謝します... @ cricket_007 – dazzle

0

datelistはArrayListです。 arraylistを日付にフォーマットすることはできません。

それは私が正しく理解していれば、あなたのコードもコンパイルされません

format2.format(dateString)

関連する問題