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:161638234556484
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);定义中国格式 外国格式不用减1System.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包起来//实例化CalendarCalendar 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 blocke.printStackTrace();}
补加一条闰年的判断方法!!
GregorianCalendar类中 isLeapYear 方法
GregorianCalendar ii= new GregorianCalendar();实例化对象 才能调用方法if(ii.isLeapYear(ye)) {返回的boolean false不是闰年 true 是闰年System.out.println("你输入的"+ye+"是闰年");}else {System.out.println("你输入的"+ye+"是平年");}