黑马程序员技术交流社区

标题: 时间类 [打印本页]

作者: zhangyangLengen    时间: 2014-11-3 22:15
标题: 时间类
Date 和  Calendar 类什么区别啊?
看看java api文档 Calendar类能够将时间更加方便年,月,日的计算

作者: feng_0207    时间: 2014-11-3 23:05

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 抽象类

作者: zxbzxb333    时间: 2014-11-4 11:27
上面那哥们说的很好,我再补充一点: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 的值等等。

作者: Rain2692    时间: 2014-11-4 11:38
给你个我总结的链接看看吧,或许有用。。http://bbs.itheima.com/thread-151101-1-1.html
作者: wf111sxwf    时间: 2014-11-4 13:27
Date出现的时间早  好多方法都过时了,Galendar是后来出现的日期类,相当于Vector和List的关系




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2