Date类
Date类通过一个从UTC时间1970年1月1日 00:00:00到其代表的时间之间的毫秒数来表示时间。
* 类加载
import java.util.Date;
* 构造Date类
以系统当前的毫秒数创建当前时间对象
public Date();
根据给定的毫秒值创建日期对象
public Date(long date);
* 常用方法
1通过getTime方法可以将一个日期类型转换为long类型的毫秒值
public long getTime();
注:若Date对象表示的是当前日期,则getTime()方法获得的毫秒数与System.currentTimeMills()方法得到的结果相同
2毫秒值转日期
public void setTime(long time);
3比较两个日期
public int compareTo(Date anotherDate);
如果参数Date等于当前Date,则返回值0;如果当前Date在参数Date之前,则返回-1;如果当前Date在参数Date之后,则返回1
4判断当前Date是否在参数Date之前,当且仅当当前Date对象表示的瞬间比参数Date表示的瞬间早,才返回true;否则返回false
public boolean before(Date when);
5判断当前Date是否在参数Date之后,当且仅当当前Date对象表示的瞬间比参数Date表示的瞬间晚,才返回true;否则返回false
public boolean after(Date when);
Calendar类
JAVA中的java.util.Calendar类适用于计算日期和时间。JAVA只提供了java.util.GregorianCalendar这一个java.util.Calendar的实现类
* 类加载
import java.util.Calendar;
* 创建Calendar类实例
java.util.Calendar是一个抽象类且Calendar类的构造方法是protected的,因此不能将其实例化,但是Calendar类提供一个工厂方法,即getInstance来创建一个代表系统当前日期的Calendar对象。
Calendar calendar = Calendar.getInstance();
* 创建一个指定日期的Calendar对象
方法一:调用set()方法设定对象中的年月日参数来完成
public final void set(int year,int month,int date);
//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);
注:Calendar的一月是从0开始的,即你设定月份为4时,其实是五月
方法二:根据指定的Date对象设置Calendar时间
public final void setTime(Date date);
Date date = new Date();
Calendar c = Calendar.getInstance();
c.setTime(date);
* 将给定的日历字段设置为给定值
public void set(int field, int value);
其中,field字段各变量的含义如下:
Calendar.YEAR - 年份|Calendar.MONTH - 月份|Calendar.DATE - 日期
Calendar.DAY_OF_MONTH - 日期,和上面的字段意义完全相同
Calendar.HOUR - 12小时制的小时|Calendar.HOUR_OF_DAY - 24小时制的小时
Calendar.MINUTE - 分钟|Calendar.SECOND - 秒|Calendar.DAY_OF_WEEK - 星期几
Calendar c = Calendar.getInstance();
c1.set(Calendar.DATE,10);
c1.set(Calendar.YEAR,2008);
* 访问Calendar类对象年月日等信息
public int get(int field);
Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
* 为给定的日历字段添加或减去指定的时间量
public abstract void add(int field, int amount);
Calendar c1 = Calendar.getInstance();
//把c1对象的日期加上10,也就是c1所表的日期的10天后的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, 10);
//把c1对象的日期加上10,也就是c1所表的日期的10天前的日期,其它所有的数值会被重新计算
c1.add(Calendar.DATE, -10);
* 比较Calendar类日期
public int compareTo(Calendar anotherCalendar);
public boolean before(Object when);
public boolean after(Object when);
GregorianCalendar类
JAVA只提供java.util.GregorianCalendar这一种java.util.Calendar的实现类,提供了世界上大多数国家使用的标准日历系统
* 类加载
import java.util.Calendar;
import java.util.GregorianCalendar;
* 构造GregorianCalendar对象
在具有默认语言环境的默认时区内使用当前时间构造一个默认的GregorianCalendar
public GregorianCalendar();
在具有默认语言环境的默认时区内构造一个带有给定日期设置的GregorianCalendar
public GregorianCalendar(int year, int month, int dayOfMonth);
为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar
public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute);
Calendar calendar1 = new GregorianCalendar();
Calendar calendar2 = new GregorianCalendar(2009,6-1,12);
* 判断给定的年份是否为闰年
public boolean isLeapYear(int year);