• Calendar类的概念和使用


    1、基本概念

      java.util.Calender类主要用于描述特定的瞬间,取代Date类中的过时方法实现全球化。
    该类是个抽象类,因此不能实例化对象,其具体子类针对不同国家的日历系统,其中应用最广泛的
      是GregorianCalendar(格里高利历),对应世界上绝大多数国家/地区使用的标准日历系统。

    2、常用的方法

    过时Date构造函数与替代方法Calender gerInstance()之间的对比

    package com.lagou.task13;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    public class CalenderTest{
        public static void main(String[] args) {
            //  1.使用过时的方法按照指定的年月日时分秒来构造对象
            Date d1 = new Date(2008-1900, 8-1, 8, 20, 8, 8);
            //  设置日期对象的格式并打印
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String format = sdf.format(d1);
            //  该方法已过时,在年份中需要扣除1900,月份中需要减1
            System.out.println("获取到的时间是:" + format);    //  3908-9-8 20-8-8
    
            System.out.println("-----------------------------------------------");
            //  2.取代的方式,按照指定的年月日时分秒来构造对象
            //  获取Calender类型的引用
            Calendar instance = Calendar.getInstance();
            //  设置指定的年月日时分秒信息
            instance.set(2008,8-1,8,20,8,8);    //  使用calender类中set方法,年份不需要减去1900月份需要减去1
            //  转换为Date类型的对象
            Date d2 = instance.getTime();
            String format1 = sdf.format(d2);
            System.out.println("获取到的时间是:" + format1);
        }
    }

    多态的第三种使用场合 :利用参数的返回值类型形成多态

    System.out.println("-----------------------------------------------");
            //  3.向指定的字段设置以及增加指定的数值
            instance.set(Calendar.YEAR,2018);
            //  转换为Date类型并按照指定的格式打印
            Date d3 = instance.getTime();
            System.out.println("设置年份后的结果是:" + sdf.format(d3));
    
            //  增加两个月
            instance.add(Calendar.MONTH,2);
            Date d4 = instance.getTime();
            System.out.println("增加月份后的结果是:" + sdf.format(d4));
    
            //  笔试考点:既然Calender是个抽象类不能创建对象,那么上面的方法为啥可以获取Calender类型的引用呢?为什么getInstance()方法可以得到他的引用
            //  在源码中Calender new的不是自己的对象,所以这些类与Calender是父子类的关系;虽然在源码中return的是cal,但是实际上返回的是子类类型的对象形成多态
            //  多态的使用场合之三   ·
        }

    3、多态的使用场合

    通过方法的参数传递形成多态;
      public static void draw(Shape s){
        s.show();
      }
      draw(new Rect(1, 2, 3, 4));
    在方法体中直接使用多态的语法格式
      Account acc = new FixedAccount();
    通过方法的返回值类型形成多态
      Calender getInstance(){
        return new GregorianCalendar(zone, aLocale);
      }

  • 相关阅读:
    eclipse导入项目后出现红色叉号
    java.lang.ArithmeticException: Non-terminating decimal expansion
    IDEA 2020 注册码
    最新调查:游戏女性玩家群体达3亿!这意味着什么,嘻嘻......
    Linux安装配置Nginx服务器
    mysql/mariadb 远程登陆
    redis 集群 新增 master 节点 与 slave 挂靠命令
    RedisCluster 集群 之 Ruby 安装
    Linux CentOS 7 关闭防火墙
    springcloud 与 springboot 对应关系
  • 原文地址:https://www.cnblogs.com/xujiaqi/p/13920521.html
Copyright © 2020-2023  润新知