个人理解:

  关于Date类,进行截取或者转换时一定要注意好数据类型,long类型后面要加上L。时间的原点是1970年。用DateFormat则完成日期与文本之间的转换,特别注意的是:月是用M,时是用H,其他常用的一般都小写。关于Calendar类,因为其实静态的,需要用类名也就是Calendar进行调用其方法。

一、Date类:

1、概述:

  类 Date 表示特定的瞬间,精确到毫秒;

  时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0;

  System.currentTimeMillis()  返回值long类型参数,用于获取当前日期的毫秒值。

2、构造方法:

JAVA基础之Date类、DateFormat类及Calendar类-LMLPHP

3、常用方法:

getTime():返回自原点以来此Date对象表示的Long类型的毫秒数;

二、DateFormat 类:

1、概述:

    DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。

我们通过这个类可以帮我们完成日期和文本之间的转换。

2、构造方法:

  SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat;

3、DateFormat 类方法:

  format(Date date)将一个Date格式化为日期/时间字符串。String类型

DateFormat类的作用:即可以将一个Date对象转换为一个符合指定格式的字符串,也可以将一个符合指定格式的字符串转为一个Date对象。

  parse(String source) 从给定的字符串开始解析文本,生成一个日期。  Date类型 (转换时,该String要符合指定格式,否则不能转换)。

三、Calendar类:

1、概念:

Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象。

2、方法:

JAVA基础之Date类、DateFormat类及Calendar类-LMLPHP

3、注意事项:

西方星期的开始为周日,中国为周一。

在Calendar类中,月份的表示是以0-11代表1-12月。

日期是有大小关系的,时间靠后,时间越大。

例如:求出自己已经出生多少天

 public static void main(String[] args) throws ParseException{
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Date bir = sdf.parse("yyyy-MM-dd");
         long time = bir.getTime();
         System.out.println(time);
         Date d = new Date();
         long time1 = d.getTime();
         System.out.println(time1);
         System.out.println((time1-time)/1000/3600/24);
     }
05-11 15:04