第三次学JAVA再学不好就吃翔(part74)--Calendar类

学习笔记,仅供参考


Calendar类


Calendar类是java.util包下的一个类,使用该类时需要导包。

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。


字段


字段 定义 详情
YEAR public static final int YEAR 这是一个特定于日历的值
MONTH public static final int MONTH 在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;
WEEK_OF_YEAR public static final int WEEK_OF_YEAR 当前年中的星期数,一年中第一个星期的值为 1
WEEK_OF_MONTH public static final int WEEK_OF_MONTH 当前月中的星期数,一个月中第一个星期的值为 1
DATE public static final int DATE 一个月中的某天,一个月中第一天的值为 1,它与 DAY_OF_MONTH 是同义词
DAY_OF_MONTH public static final int DAY_OF_MONTH 一个月中的某天,它与 DATE 是同义词,一个月中第一天的值为 1。
DAY_OF_YEAR public static final int DAY_OF_YEAR 当前年中的天数,一年中第一天的值为 1。
DAY_OF_WEEK public static final int DAY_OF_WEEK 一个星期中的某天。该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY。
DAY_OF_WEEK_IN_MONTH public static final int DAY_OF_WEEK_IN_MONTH 当前月中的第几个星期。与 DAY_OF_WEEK 字段一起使用时,就可以唯一地指定某月中的某一天。
AM_PM public static final int AM_PM 指示 HOUR 是在中午之前还是在中午之后。
例如,在 10:04:15.250 PM 这一时刻,AM_PM 为 PM。
HOUR public static final int HOUR HOUR 用于 12 小时制时钟 (0 - 11)。中午和午夜用 0 表示,不用 12 表示
HOUR_OF_DAY public static final int HOUR_OF_DAY 一天中的小时。HOUR_OF_DAY 用于 24 小时制时钟。
MINUTE public static final int MINUTE 一小时中的分钟。
SECOND public static final int SECOND 一分钟中的秒

成员方法


public static Calendar getInstance()
//使用默认时区和语言环境获得一个日历。
//返回的Calendar基于当前时间,使用了默认时区和默认语言环境。 
public int get(int field)
public void add(int field,int amount)
//为给定的日历字段添加或减去指定的时间量。例如,要从当前日历时间减去5天
public final void set(int year,int month,int date)
//设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。保留其他日历字段以前的值。如果不需要这样做,则先调用 clear()。 

  • 举个例子1
package com.guiyang.restudy3;

import java.util.Calendar;

public class D8Calendar {

	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();		//父类引用指向子类对象
		System.out.println(c);					//重写了toString方法打印了对象中所有的属性
		System.out.println(c.get(Calendar.YEAR));  	//通过字段获取对应的值
		System.out.println(c.get(Calendar.MONTH));
		System.out.println(c.get(Calendar.DAY_OF_YEAR));
		System.out.println(c.get(Calendar.DAY_OF_WEEK)); //周六为最后一天,周日为第1天
	}

}

输出:

java.util.GregorianCalendar[time=1593223090351,areFieldsSet=true,
areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
offset=28800000,dstSavings=0,useDaylight=false,transitions=19,
lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,
YEAR=2020,MONTH=5,WEEK_OF_YEAR=26,WEEK_OF_MONTH=4,DAY_OF_MONTH=27,
DAY_OF_YEAR=179,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=9,
HOUR_OF_DAY=9,MINUTE=58,SECOND=10,MILLISECOND=351,ZONE_OFFSET=28800000,DST_OFFSET=0]
2020
5
179
7

  • 举个例子2
package com.guiyang.restudy3;

import java.util.Calendar;

public class D9Calender {

	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();	//父类引用指向子类对象
		c.set(1997, 8, 28);
		
		System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1)) 
				+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) 
				+ "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
		c.add(Calendar.MONTH, -2);
		System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1)) 
						+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) 
						+ "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
		
	}

	public static String getWeek(int week) {
		String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		
		return arr[week];
	}

	public static String getNum(int num) {

		return num > 9 ? "" + num : "0" + num;
	}
}

输出:

1997年09月28日星期日
1997年07月28日星期一
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章