1.Date util 包类讲解。
Date: 1.该类位于java.util包中,在sql包也存在。
2.父类:Object类
3.作用:描述时间
4.如何根据提供的Date类来获取时间或者设置时间
通过该类提供的构造函数及方法来实现
1.获取系统时间
Date date = new Date();// util包
Tue Nov 30 09:00:24 CST 2021
System.out.println(date); 默认显示的风格:国外
可以调用方法来显示常规时间
2021-11-30 9:02:24
System.out.println(date.toLocaleString());Date date = new Date();// util包 常用的方法 获取当前的年份 System.out.println(date.getYear() + 1900); 获取当前的月份 System.out.println(date.getMonth() + 1); 获取当前的日 System.out.println(date.getDate()); 获取当前的小时 System.out.println(date.getHours()); 获取当前的分钟 System.out.println(date.getMinutes()); 获取当前星期 System.out.printin(date.getday()); 获取当前的秒 System.out.println(date.getSeconds()); 获取当前的毫秒(距离1970年1月1日0:0:0之间的毫秒值) System.out.println(date.getTime());// 结果 long类型 2021-11-30 9:09:16 1638234556484
Date提供了一个可以传递毫秒值得构造函数
Date d = new Date(1638234556484L);
2021-11-30 9:09:16
System.out.println(d.toLocaleString());给年直接赋值
Date d2 = new Date();
d2.setYear(2022);
System.out.println(d2.getYear());
2.SimpleDateFormat 日期格式转换类
需求:通过Date对象得到一个日期,显示为:2021年11月11日 12:12:12
1.实例化Date对象
Date myDate = new Date();
2.SimpleDateFormat创建
日期的规则制定:
年份: yyyy
月份: MM
日:dd
小时:hh
分钟: mm
秒: ss星期 EEEE
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date---->String
Date myDate = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); 3.调用转换格式的方法 String format = sdf.format(myDate); System.out.println(format);
String---->Date
String str = "2021-11-11 12:20:20"; SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date parse = sdf2.parse(str); 该方法会出现异常所以使用try解决异常才能运行程序 System.out.println(parse.toLocaleString()); } catch (ParseException e) { e.printStackTrace(); }
3.Calendar类:日历类,替代了Date类对象中常用的方法
Calendar c = Calendar.getInstance();因为这个类是静态类所以只等通过类里面的方法调用!!
System.out.println(c);--------也能获取一个非常长的系统时间值 在里面能找到比如时间 日期星期等等............
Calendar类的方法
Calendar c = Calendar.getInstance(); System.out.println(c.get(Calendar.YEAR));年 System.out.println(c.get(Calendar.MONTH)+1);月 System.out.println(c.get(Calendar.DATE));日 System.out.println(c.get(Calendar.HOUR));小时 System.out.println(c.get(Calendar.MINUTE));分钟 System.out.println(c.get(Calendar.SECOND));秒 System.out.println(c.get(Calendar.HOUR)); 12小时制的小时 System.out.println(c.get(Calendar.HOUR_OF_DAY)); 24小时制的小时 systrm.out.println(c.get(Calendar.DAY_OF_DAY));星期几 System.out.println(c.getTimeInMillis());毫秒值
set方法
Calendar c = Calendar.getInstance(); c.set(2000, 10-1, 20);定义中国格式 外国格式不用减1 System.out.println(c.get(Calendar.YEAR));年 System.out.println(c.get(Calendar.MONTH));月
add 方法根据第一个参数的类型 增加指定的年|月|日|....负数就是减
Calendar c = Calendar.getInstance(); c.add(Calendar.YEAR, -2); System.out.println(c.get(Calendar.YEAR));
Calendar 类的转换:
1.Calendar类型的日期----》String类型的日期
Calendar calendar = Calendar.getInstance(); 需求:先将日历类---Date 方法一 Date d = calendar.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = sdf.format(d); System.out.println(str); 方法二 long timeInMillis = calendar.getTimeInMillis(); Date d = new Date(timeInMillis); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = sdf.format(d); System.out.println(str);
2.String类型的日期----》Calendar类型的日期
String da = "2021-10-10"; SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); try { Date d2 = sdf2.parse(da);--此方法会报异常必须用try包起来 //实例化Calendar Calendar c2 = Calendar.getInstance(); c2.setTime(d2); System.out.println(c2.get(Calendar.YEAR)+"年"+(c2.get(Calendar.MONTH)+1)+"月"+c2.get(Calendar.DATE)+"日"); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); }
补加一条闰年的判断方法!!
GregorianCalendar类中 isLeapYear 方法
GregorianCalendar ii= new GregorianCalendar();实例化对象 才能调用方法 if(ii.isLeapYear(ye)) {返回的boolean false不是闰年 true 是闰年 System.out.println("你输入的"+ye+"是闰年"); }else { System.out.println("你输入的"+ye+"是平年"); }