Java之Date类和Calendar类的区别

Date类:对于处理日期、时间,Java提供了Date类,此处的Date是指java.util包下的Date类;Date对象既包含日期,也包含时间。Date类从JDK1.0起就已经存在,经过不停的迭代更新,导致它的大部分构造器、方法都已经过时淘汰,不再推荐使用;Date表示特定的瞬间,精确到毫秒。它允许把日期解释为年、月、日、小时、分钟和秒值;它也允许格式化和解析日期字符串;

Calendar类: 由于Date类过于古老,许多的构造器和方法都已经过时,已经满足不了需求。因此Java推荐使用Calendar来完成时间计算等操作。首先Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

主要区别:java.util.Date是个日期数据;java.util.Calendar 用于日期相关的计算;

例子区分区别:获取当前时间

 

 

 根据输出,我们也可以看出Date和Calendar的区别。这就是这两个类最大的区别所在;

Date类常用的构造器:到目前为止,还有两个构造器是推荐使用,其他的构造器已经过时就不在此说明:
1、 Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒);
在这里插入图片描述

很简单的一个构造器,获取当前系统时间;
2、 Date(long value):构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
在这里插入图片描述
Date类和Calendar类:实例化特定的时间;

Date类:如下图:

 

注意:实例化时的格式:yyyy-MM-dd hh:mm:ss。mm:ss必须小写,否则无法转换;HH大小写无影响。 

Calendar类:如下

 DateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date date =null;
        try {
            date =dateFormat.parse( "2019-04-28 20:20:20" );
            System.out.println( date );
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Calendar calendar =Calendar.getInstance();
        calendar.setTime( date );
        System.out.printf( String.valueOf( calendar.getTime() ) );

Date类常用的几个方法:
1、 After(Date when) :测试此日期是否在指定日期之后,返回值:Boolean;
在这里插入图片描述
2、 before(Date when) :测试此日期是否在指定日期之前,返回值:Boolean;
在这里插入图片描述

3、 CompareTo(Date anotherDate) :比较两个日期的顺序,返回值:int
在这里插入图片描述
4、 Equals(Object obj): 比较两个日期的相等性,返回值:Boolean
在这里插入图片描述
5、 Date和String之间互转;
在这里插入图片描述

Calendar类常用的一个方法:
1、 getInstance(): 使用默认时区和语言环境获得一个日历。
在这里插入图片描述

posted @ 2021-11-23 18:49  ZikC  阅读(588)  评论(0编辑  收藏  举报