Date类概述
类Date表示特定的瞬间,精确到毫秒。1000毫秒=1秒
时间的原点:公元 1970 年 一月一日,午夜 0 : 00 : 00 对应的毫秒值就是 0
注意:时间和日期的计算,必须依赖毫秒值
1longd =System.currentTimeMillis(); system.currentTimeMillis()获取当前的毫秒值2System.out.println(d);
构造函数
1Dated1 =newDate(d);2System.out.println(d1);
Date类常用方法
1longd =System.currentTimeMillis(); 获取当前的毫秒数给d,用getTime方法转成毫秒数2Dated1 =newDate();3System.out.println(d1.getTime());
DateFormat类
DateFormat 是日期 / 时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期 / 时间格式化子类(如 SimpleDateFormat 类 )允许进行格式化(也就是日期 -> 文本)、解析(文本 -> 日期)和标准化。
日期格式
构造方法
DateFormat类方法
1SimpleDateFormat sim =newSimpleDateFormat("yyyy-MM-d HH:mm:ss"); 创建日期格式类型2Dated =newDate(); 获取当前日期3Stringstr =sim.format(d); 把当前日期传进来,调用format方法,并赋值给str4System.out.println(str);
l DateFormat类的作用:即可以将一个Date对象转换为一个符合指定格式的字符串,也可以将一个符合指定格式 的字符串转为一个 Date对象。
指定格式 的具体规则我们可参照 SimpleDateFormat 类的说明,这里做简单介绍, 规则是在一个字符串中,会将以下字母替换成对应时间组成部分,剩余内容原样输出:
l 当出现y 时,会将 y替换成年
l 当出现M时,会将M替换成月
l 当出现d时,会将d替换成日
l 当出现H时,会将H替换成时
l 当出现m时,会将m替换成分
l 当出现s时,会将s替换成秒
DateFormat类常用方法
1SimpleDateFormat sim =newSimpleDateFormat("yyyy-MM-dd");2Stringd ="2018-05-25"; 创建字符串类型的日期格式3Datedd =sim.parse(d); 调用parse方法传值字符串赋值给dd4System.out.println(dd);
l format方法,用来将Date对象转换成String
l parse方法,用来将String转换成Date(转换时,该String要符合指定格式,否则不能转换)。
Calendar类
Calendar 是日历类,在 Date 后出现,替换掉了许多 Date 的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar 为抽象类,由于语言敏感性, Calendar 类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象
Calendar类静态方法
1Calendarc=Calendar.getInstance();2System.out.println(c); 返回当前日历
Calenar常用方法
YEAR 年
MONTH 月,从0开始算起,最大11;0代表1月,11代表12月。
DATE 天
HOUR 时
MINUTE分
SECOND秒
1Calendarc=Calendar.getInstance(); 获取日历,用get方法获取月份2System.out.println(c.get(Calendar.YEAR));
1Calendarc=Calendar.getInstance();2c.add(Calendar.YEAR,3);//add偏移,向后3年。 打印输出2021年3System.out.println(c.get(Calendar.YEAR));
1Calendarc=Calendar.getInstance();2c.set(Calendar.YEAR,2022);//可以一个一个属性的改,也可以一次改好多个属性3c.set(2020,7,7,7,7,7);4System.out.println(c.get(Calendar.YEAR));
1Calendarc=Calendar.getInstance(); 将日历对象转成日期对象2System.out.println(c.getTime());
1.1注意事项
西方星期的开始为周日,中国为周一。
在 Calendar 类中,月份的表示是以 0-11 代表 1-12 月。
日期是有大小关系的,时间靠后,时间越大。
小练习
求出自己已经出生多少天
1longa=System.currentTimeMillis();//获取当前的毫秒数2Calendar ca =Calendar.getInstance();//获取当前的日历,然后改成出生日期3ca.set(1996,8,20);4Date b =ca.getTime();//将这个日历转成日期格式,再转成毫秒数5longc =b.getTime();6longd =(a-c)/24/60/60/1000;//毫秒数相减,当前的毫秒数前去出生的7System.out.println(d);*/
网友评论