|NO.Z.00037|——————————|BigDataEnd|——|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

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(29)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示