当前位置: 代码迷 >> 综合 >> java API | Date | SimpleDateFormat | Calendar日期类
  详细解决方案

java API | Date | SimpleDateFormat | Calendar日期类

热度:83   发布时间:2023-12-06 02:32:30.0

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+"是平年");}

  相关解决方案