一名IT寻梦人

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();

}

 

posted on 2021-04-08 11:08  一名IT寻梦人  阅读(1123)  评论(0编辑  收藏  举报

导航