Day34.2:Calendar详解

Calendar

1.1 概述

Date类中很多方法被Calendar所取代,Calendar类提供了获取和设置各种日历的方法。

1.2 方法

构造方法:Calendar类的构造器被protected修饰,外界不能直接使用!

其他方法:

方法名 说明
static Calendar getInstance() 类静态方法;返回一个当前区域时间;(通过此方法构造Calendar对象)
final void set(int year, int month, int date, int hourOfDay, int minute) 修改当前的时间信息
int get(int field); 返回当前时间的某一项信息:年:1;星期几:7;......不同数字代表不同的信息
void setTime(int field,int) 将Date设置为当前日历时间 Date——Calendar
Date getTime() 将当前对象时间转为Date对象并返回 Calendar——Date
void add(int field,int) 给当前对象时间某一项信息增加或减少时间量
getActualMaximum(int field,int) 获取当前对象时间具体某一项信息的最大值;比如1月的最大值为31

将上述方法在代码中进行演示

public class Test{
    public static void main(String[] args){
        //通过Calendar类中的静态方法创建Calendar对象
        System.out.println("=========getInstance========");
        
        Calendar s1=Calendar.getInstance();
        
        //打印时间
        System.out.println("============getTime=========");
        System.out.println(s1);//此方法打印出来的并不是我们能方便观察的时间
        System.out.println(s1.getTime().toLocaleString());//通过调用getTime方法返回一个Date对象,然后再调用Date对象的toLocaleString方法来打印
        
        //获取时间信息
        System.out.println("==============get==========");
        System.out.println(s1.get(1));
                     //上下两行代码等价
        System.out.println(s1.get(Calendar.YEAR));//Calendar 提供了很多静态常量,year=1,month=2
        
        //修改时间
        System.out.println("============set=============");
        s1.set(2022,11,1,20,30);//final void set(int year, int month, int date, int hourOfDay, int minute)分别加入参数即可
                 //这里需要注意一下,月份是从0开始的,也就是说12月份在代码里面是11
        System.out.println(s1.getTime().toLocaleString());
        
        //增加或减少时间的某一信息
        System.out.println("============add=============");
        s1.add(Calendar.YEAR,1);//给调用该方法的时间的年这一项增加了1
        System.out.println(s1.getTime().toLocaleString());
        
        //获取时间某一项信息的最大/小值
        System.out.println("============getAutualMaximum=============");
        System.out.println(s1.getAutualMaximum(Calendar.DAY_OF_MONTH));//获取当前对象时间的月份里面最大的一天是多少
        System.out.println(s1.getAutualMinimum(Calendar.DAY_OF_MONTH));//获取当前对象时间的月份里面最小的一天是多少
    }
}
=========getInstance========
============getTime=========
java.util.GregorianCalendar[time=1670421166199,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH=7,DAY_OF_YEAR=341,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=52,SECOND=46,MILLISECOND=199,ZONE_OFFSET=28800000,DST_OFFSET=0]
2022-12-7 21:52:46
==============get==========
2022
2022
============set=============
2022-12-1 20:30:46
============add=============
2023-12-1 20:30:46
============getAutualMaximum=============
31
1

Process finished with exit code 0

posted @ 2022-12-07 21:55  工地佬  阅读(101)  评论(0)    收藏  举报