Java的程序里date类型怎么比较大小? 创建指定Date
在java开发中,很多字段是Date类型的,当需要我们给时间一个默认值的时候,该怎么写呢,怎么写一个指定的时间呢?一般有两个方法:
1. new Date(year,month,day); 这种方法是废弃掉的,不建议使用
2.用 Calendar,如下:
Calendar calendar=Calendar.getInstance();
calendar.set(2015, 10, 12); //年月日 也可以具体到时分秒如calendar.set(2015, 10, 12,11,32,52);
Date date=calendar.getTime();//date就是你需要的时间
通过java.util.Calendar类的静态方法getInstance()获得一个日历类实例,然后调用此实例的set(int year, int month, int date)
设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值,然后调用实例的getTime()方法可以获得指定日期的Date对象
3.
new一个java.util.SimpleDateFormat类的实例,构造方法可以指定日期格式,例如yyyy-MM-dd,其中yyyy表示四位年份,MM表示两位月份,dd表示两位日期。然后通过调用这个SimpleDateFormat实例的parse方法可以解析获得指定日期的Date对象。
代码示例:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse("2014-03-02");
————————————————
版权声明:本文为CSDN博主「打不死的little强」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_32862641/article/details/114083608
在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 = date1.compareTo(date2);
System.out.println(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();
}