我想更改存储在列表中的日期格式。然后将该日期列表保存到firebase数据库。但是在格式化存储在dateList中的日期时出错。 这是我的代码:
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 :(得分:0)
datelist
是一个ArrayList。您无法将arraylist格式化为日期。
应该是
format2.format(dateString)
答案 1 :(得分:0)
如果我理解正确,您的代码甚至无法编译。
检查您的类型。
格式方法采用日期,而不是列表,我不明白为什么你需要两种格式
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);
请注意,除了“视觉检查”之外,将列表保存为字符串可能不是一个好主意。在我看来,用户界面负责格式化日期和时间,在某些情况下,存储毫秒(date.getTime()
)更容易查询和过滤。