java两个日期之间的所有日期,java 获取两个时间段中间的时间详细如下

1,java 获取两个时间段中间的时间详细如下,定义一个日期,然后用一个方法转换成long(什么方法忘记了,你找找,提示里有)然后两个相减,,然后得到的就是毫秒了,,,然后在除以1000,60.60,24.就转化为天数了,,,然后根据自己的需求该就行了 , ,年轻人,要自己学会学习, , ,不要总是想现成的,,我有现成的答案 ,  , 但是我觉得直接给你对你以后的发展没有好处,,所还是给你思路吧 。。。过了三年半又看到了这个答案,不觉得这个答案有什么错 。至于评论里的,呵呵是两个时间点间的有几个月?!jdk8:chronounit.months.between(temporal temporal1inclusive,temporal temporal2exclusive)jdk8之前使用joda-time的months类
2,罗列出两个日期之间的日期 JAVA怎么写import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;public class Rprivate static final DateFormat FORMATTER = new SimpleDateFormat("yyyy-MM-dd"); public static void main(String[] args) throws ParseExceptionCalendar startDay = Calendar.getInstance();Calendar endDay = Calendar.getInstance();startDay.setTime(FORMATTER.parse("2010-02-01"));endDay.setTime(FORMATTER.parse("2010-05-09"));printDay(startDay, endDay); } private static void printDay(Calendar startDay, Calendar endDay)// 给出的日期开始日比终了日大则不执行打印if (startDay.compareTo(endDay) >= 0)return;}// 现在打印中的日期Calendar currentPrintDay = startDay;while (true)// 日期加一currentPrintDay.add(Calendar.DATE, 1);// 日期加一后判断是否达到终了日,达到则终止打印if (currentPrintDay.compareTo(endDay) == 0)break;}// 打印日期System.out.println(FORMATTER.format(currentPrintDay.getTime()));} }}public static void main(string[] args) throws parseexceptioncalendar startcalendar = calendar.getinstance();calendar endcalendar = calendar.getinstance();simpledateformat df = new simpledateformat("yyyy/m/d");date startdate = df.parse("2012/3/1");startcalendar.settime(startdate);date enddate = df.parse("2012/3/5");endcalendar.settime(enddate);while(true)startcalendar.add(calendar.day_of_month, 1);if(startcalendar.gettimeinmillis() < endcalendar.gettimeinmillis())system.out.println(df.format(startcalendar.gettime()));}elsebreak;}}}
3 , java编程输出两个日期之间的每一天是星期几用06表示周日周六token 最后一个数 分隔符为- 然后用系统时间可以你好,按照你的要求,代码如下import java.text.dateformat;import java.text.parseexception;import java.text.simpledateformat;import java.util.date;import java.util.scanner;public class testpublic static void main(string[] args)string[] day = new string[]dateformat df = new simpledateformat("yyyymmdd");// 输入的日期格式必须是这种scanner s = new scanner(system.in);while (true)system.out.println("输入一个日期,格式是20120101");trydate d = df.parse(s.nextline());// 把字符串转化成日期system.out.println("星期" + day[d.getday()]);} catch (parseexception e)system.out.println("输入不合法");}} }}运行结果:输入一个日期 , 格式是2012010120111123星期三输入一个日期,格式是201201012011输入不合法输入一个日期,格式是20120101System.out.println("请输入两个日期,格式为yyyy-MM-dd:");//这里的意思是匹配一个日期格式的字符串Pattern patt=Pattern.compile("[12]\\dScanner scan=new Scanner(System.in);String[] dates=for (int i = 0; i < dates.length && scan.hasNext(patt); i++)dates[i]=scan.next(patt);}if(dates[1]==null)//只要有一个为空 , 说明格式有问题或未输入System.out.println("格式不正确.");}elseString patts="yyyy-MM-dd";SimpleDateFormat sdf=new SimpleDateFormat(patts);tryDate date1 = sdf.parse(dates[0]);Date date2 = sdf.parse(dates[1]);if(date1.after(date2))//保证date1在前,date2在后Date tmp=date1;date1=date2;date2=tmp;}System.out.println(sdf.format(date1));System.out.println(sdf.format(date2));GregorianCalendar gc=new GregorianCalendar();gc.setTime(date1);doSystem.out.println("日期:"+sdf.format(date1)+"\t星期"+(gc.get(Calendar.DAY_OF_WEEK)-1));gc.add(Calendar.DATE, 1);date1=gc.getTime();} while (date1.before(date2));} catch (ParseException e)e.printStackTrace();}}【java两个日期之间的所有日期,java 获取两个时间段中间的时间详细如下】
4,得到两个日期之间的所有日期javapublic static void main(String[] args) throws ParseExceptionCalendar startCalendar = Calendar.getInstance();Calendar endCalendar = Calendar.getInstance();SimpleDateFormat df = new SimpleDateFormat("yyyy/M/d");Date startDate = df.parse("2012/3/1");startCalendar.setTime(startDate);Date endDate = df.parse("2012/3/5");endCalendar.setTime(endDate);while(true)startCalendar.add(Calendar.DAY_OF_MONTH, 1);if(startCalendar.getTimeInMillis() < endCalendar.getTimeInMillis())System.out.println(df.format(startCalendar.getTime()));}elsebreak;}}}你是查询时这个作为条件还是什么?我只个思路 , 查询数据库时,查出上一条记录中日期与当前记录的日期是否一致 , 如果相同就保存在一起,不想同就保存到下一个数组或者集合中具体保存你自己决定,可以存数组或者集合敲了一段代码,假定两个日期用相同的时间格式 。测试通过 。满意请采纳!import java.text.*;import java.util.date;public class dateteststring dateformat = "yyyy-mm-dd"; simpledateformat format = new simpledateformat(dateformat); public static void main(string[] args)datetest t = new datetest();string date1 = "2012-02-26";string date2 = "2012-03-04";t.process(date1, date2); } private void process(string date1, string date2)if(date1.equals(date2))system.out.println("两个日期相等!");return;}string tmp;if(date1.compareto(date2) > 0)tmp = date1; date1 = date2; date2 = tmp;}tmp = format.format(str2date(date1).gettime() + 3600*24*1000);int num = 0;while(tmp.compareto(date2) < 0)system.out.println(tmp);num++;tmp = format.format(str2date(tmp).gettime() + 3600*24*1000);}if(num == 0)system.out.println("两个日期相邻!"); }private date str2date(string str)if (str == null) return null;tryreturn format.parse(str);} catch (parseexception e)e.printstacktrace();}return null; }}5,java如何输出指定两个日期之间的所有日期假定两个日期用相同的时间格式import java.text.*;import java.util.Date;public class DateTestString dateFormat = "yyyy-MM-dd"; SimpleDateFormat format = new SimpleDateFormat(dateFormat); public static void main(String[] args)DateTest t = new DateTest();String date1 = "2012-02-26";String date2 = "2012-03-04";t.process(date1, date2); } private void process(String date1, String date2)if(date1.equals(date2))System.out.println("两个日期相等!");return;}String tmp;if(date1.compareTo(date2) > 0)tmp = date1; date1 = date2; date2 = tmp;}tmp = format.format(str2Date(date1).getTime() + 3600*24*1000); int num = 0; while(tmp.compareTo(date2) < 0)System.out.println(tmp);num++;tmp = format.format(str2Date(tmp).getTime() + 3600*24*1000); } if(num == 0)System.out.println("两个日期相邻!"); }private Date str2Date(String str)if (str == null) return null;tryreturn format.parse(str);} catch (ParseException e)e.printStackTrace();}return null; }}setdate()函数写的有问题,这个函数最多只会等到当前日期 , 而且上下两个函数没有关系,string birthday = df.format(date);这句话只是定义了一个局部变量 , 类里边的示例变量没有赋值,而你在showmess()里又使用了(this.birthday) , 所以就会输出空 。试着这样改:public class maindatepublic static void main(string[] args)testdate td=new testdate();td.setdate("2008-08-08");td.showmess();//可正常输出td.setdate("2008 08 08");td.showmess();//输出“出生日期未设置或为空” } } class testdateprivate string birthday;public void setdate(string strdate)dateformat df = new simpledateformat("yyyy-mm-dd");trydate tmpdate = df.format(strdate);//如果出异常,则参数strdate格式不对,不执行下句this.birthday=strdate; }catch(parseexception pe)//... }}public void showmess()//...if(this.birthday!=null||!"".equals(this.birthday))system.out.println("出生日期:"+this.birthday);}elsesystem.out.println("出生日期未设置或为空");}} }以上程序请自行测试敲了一段代码 , 假定两个日期用相同的时间格式 。测试通过 。满意请采纳!import java.text.*;import java.util.Date;public class DateTestString dateFormat = "yyyy-MM-dd"; SimpleDateFormat format = new SimpleDateFormat(dateFormat); public static void main(String[] args)DateTest t = new DateTest();String date1 = "2012-02-26";String date2 = "2012-03-04";t.process(date1, date2); } private void process(String date1, String date2)if(date1.equals(date2))System.out.println("两个日期相等!");return;}String tmp;if(date1.compareTo(date2) > 0)tmp = date1; date1 = date2; date2 = tmp;}tmp = format.format(str2Date(date1).getTime() + 3600*24*1000);int num = 0;while(tmp.compareTo(date2) < 0)System.out.println(tmp);num++;tmp = format.format(str2Date(tmp).getTime() + 3600*24*1000);}if(num == 0)System.out.println("两个日期相邻!"); }private Date str2Date(String str)if (str == null) return null;tryreturn format.parse(str);} catch (ParseException e)e.printStackTrace();}return null; }}

    推荐阅读