Haha, ini isu tarikh sekali lagi, maka saya pasti mengesyorkan anda menggunakan API masa baharu Java 8, dan rentetan masa anda masih dalam format ini yyyy-MM-dd, anda boleh menukar rentetan itu kepada LocalDate terus menggunakan LocalDate.parse kaedah Sasaran
Selain itu, jika ini melibatkan satu siri koleksi masa biasa, maka anda mesti mempertimbangkan Strim Ia adalah sangat mudah dan pantas untuk menggunakan Strim untuk membina koleksi anda. Berikut ialah kod sampel:
try {
Date begin = sdf.parse("2016-12-11");
Date end = sdf.parse("2016-12-20");
List<String> l = new ArrayList<String>();
Calendar cal = Calendar.getInstance();
while (begin.before(end)) {
l.add(sdf.format(begin));
cal.setTime(begin);
cal.add(Calendar.DAY_OF_MONTH, 1);
begin = cal.getTime();
}
for(String s:l){
System.out.println(s);
}
} catch (ParseException e) {
e.printStackTrace();
}
Anda memerlukan pakej lang Apache, yang mempunyai API berikut
Tarikh statik addDays(Tarikh tarikh, jumlah int) Mengembalikan objek Tarikh baharu selepas menambah jumlah hari pada objek masa tarikh Tarikh statik addJam(Tarikh tarikh, jumlah int) Mengembalikan objek masa Tarikh baharu selepas menambah jumlah h Objek tarikh Tarikh statik tambahMillisaat(Tarikh tarikh, jumlah int) Mengembalikan objek masa tarikh selepas menambah jumlah milisaat pada objek Tarikh baharu Tarikh statik addMinutes(Tarikh tarikh, jumlah int) Mengembalikan objek masa tarikh menambah jumlah Baharu Objek tarikh selepas minit Tarikh statik tambahBulan(tarikh tarikh, jumlah int) Mengembalikan objek masa tarikh Tambah jumlah Objek Tarikh baharu selepas bulan Tarikh statik addSecond(Tarikh tarikh, jumlah int) Mengembalikan tarikh Objek Tarikh baharu selepas menambah jumlah saat pada objek masa Tarikh statik addWeeks(Tarikh tarikh, jumlah int) Mengembalikan objek Tarikh baharu selepas menambah jumlah minggu ke objek masa tarikh Tarikh statik addTahun(Tarikh tarikh, jumlah int) ) Mengembalikan a objek masa tarikh dan objek Tarikh baharu selepas menambah jumlah tahun
Haha, ini isu tarikh sekali lagi, maka saya pasti mengesyorkan anda menggunakan API masa baharu Java 8, dan rentetan masa anda masih dalam format ini
yyyy-MM-dd
, anda boleh menukar rentetan itu kepada LocalDate terus menggunakanLocalDate.parse
kaedah SasaranSelain itu, jika ini melibatkan satu siri koleksi masa biasa, maka anda mesti mempertimbangkan Strim Ia adalah sangat mudah dan pantas untuk menggunakan Strim untuk membina koleksi anda. Berikut ialah kod sampel:
Kemudian kod ujian:
Berikut ialah hasil cetakan:
Mudah digunakan~~Java8 yang sangat elegan dan mudah difahami~Haha
Anda mengira bilangan hari antara dua tarikh dan menambah 1 dalam gelung Jika tarikh yang ditambahkan adalah sama dengan tarikh kemudian, ia akan baik
SimpleDateFormat sdf = SimpleDateFormat("yyyy-MM-dd");
Anda memerlukan pakej lang Apache, yang mempunyai API berikut
Tarikh statik addDays(Tarikh tarikh, jumlah int) Mengembalikan objek Tarikh baharu selepas menambah jumlah hari pada objek masa tarikh
Tarikh statik addJam(Tarikh tarikh, jumlah int) Mengembalikan objek masa Tarikh baharu selepas menambah jumlah h Objek tarikh
Tarikh statik tambahMillisaat(Tarikh tarikh, jumlah int) Mengembalikan objek masa tarikh selepas menambah jumlah milisaat pada objek Tarikh baharu
Tarikh statik addMinutes(Tarikh tarikh, jumlah int) Mengembalikan objek masa tarikh menambah jumlah Baharu Objek tarikh selepas minit
Tarikh statik tambahBulan(tarikh tarikh, jumlah int) Mengembalikan objek masa tarikh Tambah jumlah Objek Tarikh baharu selepas bulan
Tarikh statik addSecond(Tarikh tarikh, jumlah int) Mengembalikan tarikh Objek Tarikh baharu selepas menambah jumlah saat pada objek masa
Tarikh statik addWeeks(Tarikh tarikh, jumlah int) Mengembalikan objek Tarikh baharu selepas menambah jumlah minggu ke objek masa tarikh
Tarikh statik addTahun(Tarikh tarikh, jumlah int) ) Mengembalikan a objek masa tarikh dan objek Tarikh baharu selepas menambah jumlah tahun
Alamat artikel