A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhangyangLengen 中级黑马   /  2014-11-3 22:15  /  1281 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Date 和  Calendar 类什么区别啊?
看看java api文档 Calendar类能够将时间更加方便年,月,日的计算

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

4 个回复

倒序浏览

1,产生实例的方式不同

Date类,可使用new关键字,无参和有参的构造函数
如:Date d = new Date();
       Date d1 = new Date(2009-1900,3-1,9);
Calendar 类通过调用类的静态方法getInstance()获得实例
Calendar c = Calendar.getInstance();
2,指定时间方式不同
Date类可使用以上所述有参的构造函数生成指定日期的对象。
Calendar类,在获得对象后,调用set方法指定日期
如:Calendar c1 = Calendar.getInstance();
c1.set(2014, 11, 9);
set方法的声明为:
public final void set(int year,int month,int date)
以上示例代码设置的时间为2014年12月9日,其参数的结构和Date类不一样。Calendar类中年份的数值直接书写,月份的值为实际的月份值减1,日期的值就是实际的日期值。
3,细粒度不同
Date着重较细粒度的操作,可以说是对钟表的操作,表示瞬间,精确到时分秒毫秒
Calendar着重日期的操作,也可以说是着重对日历的操作。
4,类型差异
Date 类
Calendar 抽象类

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
上面那哥们说的很好,我再补充一点:date()构造方法只有Date(),Date(long date)两种,其它的涉及年月日分秒的构造方法都已过时,方法中也是这样,常用的只有getTime() setTime()等和毫秒打交道的方法,其余都已过时,被Calender方法所取代。Calender提供了很多代表年月日等的字段,用get(int field) 可以返回给定日历字段的值,还有add(int field, int amount) 方法根据日历的规则,为给定的日历字段添加或减去指定的时间量,set(int year, int month, int date, int hourOfDay, int minute, int second) 方法设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值等等。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
给你个我总结的链接看看吧,或许有用。。http://bbs.itheima.com/thread-151101-1-1.html
回复 使用道具 举报
Date出现的时间早  好多方法都过时了,Galendar是后来出现的日期类,相当于Vector和List的关系
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马