概述
private static List<String> getMonthBetween(String minDate, String maxDate) throws ParseException { ArrayList<String> result = new ArrayList<String>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");//格式化为年月 Calendar min = Calendar.getInstance(); Calendar max = Calendar.getInstance(); min.setTime(sdf.parse(minDate)); min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1); max.setTime(sdf.parse(maxDate)); max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2); Calendar curr = min; while (curr.before(max)) { result.add(sdf.format(curr.getTime())); curr.add(Calendar.MONTH, 1); } return result; }
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class SplitTime {private static List<Date> dateSplit(Date startDate, Date endDate) throws Exception { if (!startDate.before(endDate)) throw new Exception("开始时间应该在结束时间之后"); Long spi = endDate.getTime() - startDate.getTime(); Long step = spi / (24 * 60 * 60 * 1000);// 相隔天数 List<Date> dateList = new ArrayList<Date>(); dateList.add(endDate); for (int i = 1; i <= step; i++) { dateList.add(new Date(dateList.get(i - 1).getTime() - (24 * 60 * 60 * 1000)));// 比上一天减一 } return dateList;}public static void main(String[] args) throws ParseException { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date start = sdf.parse("2015-4-20"); Date end = sdf.parse("2015-5-2"); List<Date> lists = dateSplit(start, end); if (!lists.isEmpty()) { for (Date date : lists) { System.out.println(sdf.format(date)); } } } catch (Exception e) { }}}运行结果:2015-05-022015-05-012015-04-302015-04-292015-04-282015-04-272015-04-262015-04-252015-04-242015-04-232015-04-222015-04-212015-04-20
最后
以上就是活力黄蜂为你收集整理的java获得两个日期之间的所有月份和所有的全部内容,希望文章能够帮你解决java获得两个日期之间的所有月份和所有所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复