以下内容部分来自 疯狂Java讲义/李刚 ,博客仅用于个人笔记及帮助他人用途,无任何商业目的,如有侵权,请联系作者删除。
Date 类
Java提供了 Date 类来处理日期、时间(此处的Date是指 java.util包下的Date类,而不是java.sql 包下的Date类),Date对象既包含日期,也包含时间。Date类从 JDK1.0 起就开始存在了。但正因为它历史悠久,所以它的大部分构造器、方法都己经过时,不再推荐使用了。
Date类提供了6个构造器,其中4个己经Deprecated(Java不再推荐使用,使用不再推荐的构造器时编译器会提出警告信息,并导致程序性能、安全性等方面的问题),剩下的两个构造器如下所示:
(1)Date():生成一个代表当前日期时间的 Date 对象。该构造器在底层调用System.currentTimeMillis0获得long整数作为日期参数。
(2)Date(long date):根据指定的 long 型整数来生成一个Date对象。该构造器的参数表示创建的Date对象和 GMT1970年1月1日00:00:00 之间的时间差,以毫秒作为计时单位。
与Date构造器相同的是,Date对象的大部分方法也Deprecated了,剩下为数不多的几个方法·
(1)boolean after(Date when):测试该日期是否在指定日期when之后。
(2)boolean before(Date when):测试该日期是否在指定日期when之前。
(3)int compareTo(Date anotherDate):比较两个日期的大小,后面的时间大于前面的时间时返回 -1,否则返回1。
(4)int (Obj obj):当两个时间表示同一时刻时返回。
(5)long getTime():返回该时间对应的 long 型整数,即从 GMT1970-01-01 00:00:00到该Date对象之间的时间差,以毫秒作为计时单位。
(6)void setTime(long time):设置该Date对象的时间。
Calendar 类
因为Date类在设计上存在一些缺陷.所以Java提供了 Calendar 类来更好地处理日期和时间。Calendar是一个抽象类,它用于表示日历。
我们知道:历史上有着许多种纪年方法,它们的差异实在太大了,比如说一个人的生日是“七月七日”,那么一种可能是阳(公)历的七月七日,但也可以是阴(农)历的日期,为了统一计时,全世界通常选择最普及、最通用的日历:Gregorian Calendar,也就是我们在讲述年份时常用的“公元几几年”。
Calendar 类本身是一个抽象类,它是所有日历类的模板,并提供了一些所有日历通用的方法,但它本身不能直接实例化,程序只能创建 Calendar