第三次學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日星期一
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章