首先
java日期比较大小_java比较年月日日期大小
按照一定的格式输入两个日期的字符串
然后用simpledateformat类转换成date实例date1,
date2
然后
calendar
cal1
=calendar.getinstance();
calendar
cal2
=calendar.getinstance();
cal1.settime(date1);
cal2.settime(date2);
这样你就有了两个表示所输入日期的calendar实例了
calendar可以做很多事
比如用cal1.after(cal2)或者cal1.before(cal2)或者cal1.equals(cal2)或者来比较两个日期时间先后
比如cal.get(calendar.year)可以得到表示该日期年份的整数
同理cal.get(calendar.month)可以得到月份
甚至可以用cal.gettimeinmillis()得到表示该日期的毫秒数
有了这些方法,简单的计算之后就可以得到需要的相差的信息
如果楼主是来求现成的源代码的-
-我没有
如果是Date类型把他转化成String类型比较,直接用String里的方法就可以 >0 strA的时间在后,<0 相反, =0时候两个时间相等
一楼走弯路了,Date类型就可直接比较的,
Date a=...
Date b=...
int if(i<0)...
else ...
/**
* Compares two Dates for ordering.
** @param anotherDate the Date
to be compared.
* @return the value 0
if the argument Date is equal to
* this Date; a value less than 0
if this Date
* is before the Date argument; and a value greater than
* 0
if this Date is after the Date argument.
* @since 1.2
* @exception NullPointerException if anotherDate
is null.
*/
public int compareTo(Date anotherDate) {
long thisTime = getMillisOf(this);
long anotherTime = getMillisOf(anotherDate);
return (thisTime }参考DATE源代码.. 整整的国际化时间比较用before和after。 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString_01 = "2016-01-01 11:11:11"; String dateString_02 = "2016-01-02 11:11:11"; try { Date date_01 = sdf.parse(dateString_01); Date date_02 = sdf.parse(dateString_02); System.out.println(date_01.before(date_02)); //true,当 date_01 小于 date_02 时,为 true,否则为 false System.out.println(date_02.after(date_01)); //true,当 date_02 大于 date_01 时,为 true,否则为 //-1,当 date_01 小于 date_02 时,为 //1,当 date_02 大于 date_01 时,为 //0,当两个日期相等时,为 0 } catch (ParseException e) { e.printStackTrace(); } 将时间化成毫秒相减,判断大于零小于零或等于零的情况 JDK问道里 这三个方法都可以。 after:当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间晚,才返回 true;否则返回 before:早 compareTo:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 在java的程序里比较date类型的方法如下: 1、java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小,compareTo()方法的返回值,date1小于date2返回-1,date1大于date2返回1,相等返回0如下。 String beginTime = "2018-07-28 14:42:32"; String endTime = "2018-07-29 12:26:32"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date date1 = format.parse(beginTime); Date date2 = format.parse(endTime); int compareTo = } catch (ParseException e) { e.printStackTrace(); }2、通过Date自带的before()或者after()方法比较,如下。 String beginTime = "2018-07-28 14:42:32"; String endTime = "2018-07-29 12:26:32"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date date1 = format.parse(beginTime); Date date2 = format.parse(endTime); boolean before = date1.before(date2); System.out.println(before); } catch (ParseException e) { e.printStackTrace(); }3、通过调用Date的getTime()方法获取到毫秒数来进行比较,如下。 String beginTime = "2018-07-28 14:42:32"; String endTime = "2018-07-29 12:26:32"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date date1 = format.parse(beginTime); Date date2 = format.parse(endTime); long beginMillisecond = date1.getTime(); long endMillisecond = date2.getTime(); System.out.println(beginMillisecond > endMillisecond); } catch (ParseException e) { e.printStackTrace(); }扩展资料: 1、Java编程技巧之一,return 一个空的集合,而不是 null。如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素。这样你就不用去写一大堆 ”if else” 判断null元素。 2、Java编程技巧之二,小心使用 String。因为字符串相加或者拼接的方式都会在对象池中查找字符串是否存在,如果不存在则创建,这样在拼接的过程中会产生大量中间过程的字符串,占用内存资源。 3、Java编程技巧之三,StringBuilder效率优于StringBuffer,但是StringBuffer线程安全。 参考资料来源: 两个Date类型的变量可以通过compareTo方法来比较。 方法一: java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小 compareTo()方法的返回值,date1小于date2返回-1,date1大于date2返回1,相等返回0 方法二: 通过Date自带的before()或者after()方法比较 before()或者after()方法的返回值为boolean类型 方法三: 通过调用Date的getTime()方法获取到毫秒数来进行比较 参考资料: 两个Date类型的变量可以通过compareTo方法来比较。此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。 实际上比较的是自1970 年 1 月 1 日 00:00:00 GMT以来的毫秒数。毫秒数越大的时间越大。 String DateStr1 = "2014-08-21 10:20:16"; String DateStr2 = "2014-08-27 15:50:35"; DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date dateTime1 = dateFormat.parse(DateStr1); Date dateTime2 = dateFormat.parse(DateStr2); int i = < 0); 扩展资料:在windows下编译java文件、执行: 1、先创建一个txt,更改为test.java。 4、编译java文件,输入命令为javac test.java。 6、执行class文件,在命令输入java test,输出为holloword。 Date a; Date b; 假设现在你已经实例化了a和b a.after(b)返回一个boolean,如果a的时间在b之后(不包括等于)返回true b.before(a)返回一个boolean,如果b的时间在a之前(不包括等于)返回true a.equals(b)返回一个boolean,如果a的时间和b相等返回true 为什么不试试compareTo(Date date)咧? 如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。 date1小于date2返回-1,date1大于date2返回1,相等返回(date2) 1、获取日期的年月 function int getYearMonth(Date dt){//传入日期 Calendar cal = Calendar.getInstance(); cal.setTime(dt.getTime());//设置时间 int year = cal.get(Calendar.YEAR);//获取年份 int month=cal.get(Calendar.MONTH);//获取月份 return year*100+month;//返回年份乘以100加上月份的值,因为月份最多2位数,所以年份乘以100可以获取一个唯一的年月数值 }2、比较日期 int d1 = getYearMonth(new Date()); int d2 = getYearMonth(new Date()); if(d1==d2){//年月相等 }else if(d1>d2){//d1比d2晚 }else{//d1比d2早 } Date类有compareTo方法,返回值是int类型,等于0则两日期相等,>0则在被比较日期之后,小于0则在被比较日期之前 变量 a=日期日期2)a=0 两日期相等a>0 1>2a<0 1<2java代码中怎么比较时间的大小
java怎么比较两个日期(年和月)的大小