Java 的Calendar,Date,TimeZone,Locale和DateFormat的关系图如下:

Java 时间架构图_子类

说明:
milliseconds表示毫秒。
milliseconds = "实际时间" - "1970-01-01 00:00:00"。Calendar 和 Date依赖于 milliseconds,从而表示时间。
Calendar表示日期/时间。
它是一个抽象类,依赖于milliseconds。GregorianCalendar是Calendar的子类,通常我们通过 Calendar.getInstance() 获取Calendar实例时,实际上返回的是 GregorianCalendar 对象。Calendar和Locale关联,而Locale代表区域,Locale的值不同时,Calendar的日期/时间也不同。Calendar和 TimeZone关联,而TimeZone代表时区,不同的时区,Calendar的日期/时间也不同。
Date 表示日期/时间。
它也依赖于 milliseconds实现。在 JDK 1.1 之前,通常是通过Date操作"年月日时分秒"。不过,由于Date的相关 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类来操作“年月日时分秒”,同时可以通过DateFormat类来格式化和解析日期字符串。Date中的相应方法已废弃。
DateFormat是格式化/解析"日期/时间"的工具类。
它是Date的格式化工具,它能帮助我们格式化Date,进而将Date转换成我们想要的String字符串供我们使用。它是一个抽象类。通常,我们通过 getInstance(), getDateInstance()和getDateTimeInstance() 等获取DateFormat实例时;实际上是返回的SimpleDateFormat对象。

怀有希望!!