【发布时间】:2017-10-06 06:17:35
【问题描述】:
我尝试获取两个日期之间的日期列表。但是,列表中的所有值都是开始日期。
例如
日期从 = 06-10-2017
dateto = 2017 年 10 月 10 日
==> 列表的所有值都是 datefrom (06-10-2017)
预期---------------------------实际
日期[0] = 06-10-2017--------------------日期[0] = 06-10-2017
日期[1] = 07-10-2017-------日期[1] = 06-10-2017
日期[2] = 08-10-2017--------------------日期[2] = 06-10-2017
日期[3] = 09-10-2017-------日期[3] = 06-10-2017
日期[4] = 10-10-2017--------------------日期[4] = 06-10-2017
任何帮助将不胜感激。
public class fragTable extends Fragment{
...
private String mdateFrom = "06-10-2017";
private String mdateTo = "10-10-2017";
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
List<String> dates = new ArrayList<String>();
dates = getDaysBetweenDates(stringToDaTe(mdateFrom),stringToDaTe(mdateTo));
}
public List<String> getDaysBetweenDates(Date startdate, Date enddate)
{
List<String> dates = new ArrayList<String>();
Calendar calendar = new GregorianCalendar();
calendar.setTime(startdate);
while (calendar.getTime().before(enddate))
{
Date result = calendar.getTime();
dates.add( datetoString(result));
calendar.add(Calendar.DATE, 1);
}
return dates;
}
//Convert String to Date
public Date stringToDaTe(String dateString)
{
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date = new Date();
try {
date = sdf.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
//Convert Date to String
public String datetoString(Date date)
{
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
Date today = Calendar.getInstance().getTime();
String result = df.format(today);
return result;
}
}
【问题讨论】:
-
发布该错误而不是
-
什么是 datetoString?
-
您的问题不清楚,预期的输出是什么?你只想要日期之间的日期,不包括开始日期和结束日期??
-
使用Joda Time,您可以更轻松地执行此任务。
标签: java android date android-fragments android-activity