ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java之Date类和Calendar类的区别

2021-11-23 19:02:21  阅读:147  来源: 互联网

标签:Java 构造 date 日期 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(): 使用默认时区和语言环境获得一个日历。
在这里插入图片描述

标签:Java,构造,date,日期,Date,返回值,Calendar
来源: https://www.cnblogs.com/nbfangzhu/p/15594646.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有