如何在Android中获取两个日期之间的所有日期。
例如。我有两个字符串。
String first="2012-07-15";
String second="2012-07-21"; 我从这些字符串中转换并获取日期。
DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
DateFormat df2 = new SimpleDateFormat("MMM dd");
String mydate = df2.format(df1.parse(first));这样,我就可以从第一个和第二个字符串中获取日期。
现在,我还显示了这两个日期之间的所有日期。
发布于 2012-07-10 20:43:30
最好不要在日期计算中使用任何硬编码值。我们可以依靠java Calendar类方法来完成这项任务。
请参阅代码
private static List<Date> getDates(String dateString1, String dateString2)
{
ArrayList<Date> dates = new ArrayList<Date>();
DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = null;
Date date2 = null;
try {
date1 = df1 .parse(dateString1);
date2 = df1 .parse(dateString2);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
while(!cal1.after(cal2))
{
dates.add(cal1.getTime());
cal1.add(Calendar.DATE, 1);
}
return dates;
}并按如下方式使用它
List<Date> dates = getDates("2012-02-01", "2012-03-01");
for(Date date:dates)
System.out.println(date);发布于 2012-07-10 20:00:05
public class DummyWorks extends Activity
{
static final long ONE_DAY = 24 * 60 * 60 * 1000L;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getDatesBetween("03/23/2011","03/28/2011");
}
public static void getDatesBetween(String startDate,String endDate) {
long from=Date.parse(startDate);
long to=Date.parse(endDate);
int x=0;
while(from <= to) {
x=x+1;
System.out.println ("Dates : "+new Date(from));
from += ONE_DAY;
}
System.out.println ("No of Dates :"+ x);
}
}发布于 2021-05-06 20:54:51
Kotlin中的解决方案:它将返回介于两个日期之间的日期列表。
fun getDatesBetween(dateString1:String, dateString2:String):List<String> {
val dates = ArrayList<String>()
val input = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
var date1:Date? = null
var date2:Date? = null
try
{
date1 = input.parse(dateString1)
date2 = input.parse(dateString2)
}
catch (e:ParseException) {
e.printStackTrace()
}
val cal1 = Calendar.getInstance()
cal1.time = date1
val cal2 = Calendar.getInstance()
cal2.time = date2
while (!cal1.after(cal2))
{
val output = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
dates.add(output.format(cal1.time))
cal1.add(Calendar.DATE, 1)
}
return dates
}https://stackoverflow.com/questions/11412713
复制相似问题