CC00037.bigdatajava——|Java&核心类库.V07|——|Java.v07|Calendar类|概念使用|Calendar类|方法多态|使用方式|

一、[Calendar类的概念和使用]——[Calendar类的方法和多态的使用方式]
### --- Calendar类的概述

~~~     # 基本概念
~~~     ——>        java.util.Calender类主要用于描述特定的瞬间,取代Date类中的过时方法实现全球化。
~~~     ——>        该类是个抽象类,因此不能实例化对象,其具体子类针对不同国家的日历系统,
~~~     ——>        其中应用最广泛的是GregorianCalendar(格里高利历),
~~~     ——>        对应世界上绝大多数国家/地区使用的标准日历系统。
二、常用的方法
方法声明功能介绍
static Calendar getInstance()用于获取Calendar类型的引用
void set(int year, int month, int date,
int hourOfDay, intminute, int second)
用于设置年月日时分秒信息
Date getTime()用于将Calendar类型转换为Date类型
void set(int field, int value)设置指定字段的数值
void add(int field, int amount)向指定字段增加数值
三、多态的使用场合
### --- 多态的使用场合

——>        通过方法的参数传递形成多态;
——>        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);
——>        }
四、编程代码
package com.yanqi.task13;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalendarTest {

    public static void main(String[] args) {

        // 1.使用过时的方法按照指定的年月日时间分来构造对象
        Date d1 = new Date(2008-1900, 8-1, 8, 20, 8, 8);
        // 2.设置日期对象的格式并打印
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = sdf.format(d1);
        System.out.println("获取到的时间是:" + format); // 2008 8 8 20 8 8

        System.out.println("-----------------------------------------------------");
        // 2.使用取代的方式按照指定的年月日时分秒来构造对象
        // 2.1 获取Calendar类型的引用
        // 考点:既然Calendar是个抽象类不能创建对象,那么下面的方法为啥可以获取Calendar类型的引用呢?
        // 解析:由源码可知,返回的并不是Calendar类型的对象,而是Calendar类的子类GregorianCalendar等对象,形成了多态
        // 多态的使用场合之三
        Calendar instance = Calendar.getInstance();
        // 2.2 设置指定的年月日时分秒信息
        instance.set(2008, 8-1, 8, 20, 8, 8);
        // 2.3 转换为Date类型的对象
        Date d2 = instance.getTime();
        String format1 = sdf.format(d2);
        System.out.println("获取到的时间是:" + format1); // 2008 8 8 20 8 8

        System.out.println("-----------------------------------------------------");
        // 3.向指定的字段设置以及增加指定的数值
        instance.set(Calendar.YEAR, 2018);
        // 转换为Date类型并按照指定的格式打印
        Date d3 = instance.getTime();
        System.out.println("设置年份后的结果是:" + sdf.format(d3)); // 2018 8 8 20 8 8

        instance.add(Calendar.MONTH, 2);
        Date d4 = instance.getTime();
        System.out.println("增加月份后的结果是:" + sdf.format(d4)); // 2018 10 8 20 8 8
    }
}
五、编译打印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=53170:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task13.CalendarTest
获取到的时间是:2008-08-08 20:08:08
-----------------------------------------------------
获取到的时间是:2008-08-08 20:08:08
-----------------------------------------------------
设置年份后的结果是:2018-08-08 20:08:08
增加月份后的结果是:2018-10-08 20:08:08

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值