Java基础18-日期类和日历类
一、java.util.Date日期类
private Integer age;//员工年龄
private String hireDate;//入职时间
在系统中存储的是员工的基本信息,包括了员工的年龄,此时使用Integer/int类型来表示年龄是不合理的
难道每年都得修改系统中员工的年龄递增1?
1.类 Date 表示特定的瞬间,精确到毫秒。
Date类中有一个方法可以返回自1970年以来到现在的毫秒值,这就是getTime方法,是一个long类型的值
Date类中有很多过时的方法,但这些过时的方法中也有比较好用的,比如下边这个
这个表示形式比较符合我们中国人的习惯
二、DateFormat格式化日期
格式化: Date类型对象--->String类型
解析:String类型时间---->Object类型
1.格式化日期类中的方法
2.格式化:Date类型对象--->String类型
3.解析:String类型时间---->Object类型
4.自定义日期模式
三、日历类
1.常用方法
我们创建一个日历对象
发现输出了一大堆不是很好看懂的内容,这可怎么办呢?
2.这就要用到get方法,获取时间字段值
3.如何添加和设置日期呢?
这就用到add和set方法
100天后是几月几号呢?
4.日历类也可以转化为日期
注意:在Calendar类中,月份的表示是以0-11代表1-12月。
案例1:
//计算起止时间
//查询最近一周的信息,如何表示最近这一周
Date current =new Date(); //把当前时间作为日历的时间 Calendar c3=Calendar.getInstance(); c3.setTime(current); //把日增加1天,再把时分秒设置为0 c3.add(Calendar.DAY_OF_MONTH, 1); c3.set(Calendar.HOUR_OF_DAY, 0);//时设置成0 c3.set(Calendar.MINUTE, 0);//分设置成0 c3.set(Calendar.SECOND, 0);//秒设置成0 Date endTime=c3.getTime(); c3.add(Calendar.DAY_OF_MONTH, -7); Date beginTime=c3.getTime(); System.out.println("开始时间="+beginTime.toLocaleString()); System.out.println("结束时间="+endTime.toLocaleString());
案例2:获取自己出生到现在的天数
public static void main(String[] args){ Calendar my = Calendar.getInstance(); Calendar c = Calendar.getInstance(); //设置出生年月日 1995-05-10 my.set(Calendar.YEAR, 1995); my.set(Calendar.MONTH, 4); my.set(Calendar.DATE, 10); //获取时间中的天数 int day = c.get(Calendar.DATE); int myDay = my.get(Calendar.DATE); System.out.println(day - myDay); }
案例3:求出距离某年某月某日还有多少天
public static void main(String[] args){ Calendar my = Calendar.getInstance(); Calendar c = Calendar.getInstance(); //设置年月日 2020-01-01 my.set(Calendar.YEAR, 2020); my.set(Calendar.MONTH, 0); my.set(Calendar.DATE, 1); //获取时间中的天数 int day = c.get(Calendar.DATE); int myDay = my.get(Calendar.DATE); System.out.println(myDay - day); }
public static void main(String[] args){
Calendar my = Calendar.getInstance();
Calendar c = Calendar.getInstance();
//设置年月日 2020-01-01
my.set(Calendar.YEAR, 2020);
my.set(Calendar.MONTH, 0);
my.set(Calendar.DATE, 1);
//获取时间中的天数
int day = c.get(Calendar.DATE);
int myDay = my.get(Calendar.DATE);
System.out.println(myDay - day);
}