Java中的GregorianCalendar類
GregorianCalendar是Calendar類的一個具體實現,它實現了您熟悉的標準格里高利曆。本教程未討論Calendar類,您可以查閱標準Java文件。
Calendar的getInstance()方法返回一個GregorianCalendar物件,該物件使用預設區域設定和時區中的當前日期和時間進行初始化。GregorianCalendar定義了兩個欄位:AD和BC。它們代表格里高利曆定義的兩個紀元。
GregorianCalendar物件還有幾個建構函式:
| 序號 | 建構函式及描述 |
|---|---|
| 1 | GregorianCalendar() 使用預設時區和預設區域設定中的當前時間構造一個預設的GregorianCalendar。 |
| 2 | GregorianCalendar(int year, int month, int date) 使用預設時區和預設區域設定構造一個GregorianCalendar,並設定指定的日期。 |
| 3 | GregorianCalendar(int year, int month, int date, int hour, int minute) 使用預設時區和預設區域設定構造一個GregorianCalendar,並設定指定的日期和時間。 |
| 4 | GregorianCalendar(int year, int month, int date, int hour, int minute, int second) 使用預設時區和預設區域設定構造一個GregorianCalendar,並設定指定的日期和時間。 |
| 5 | GregorianCalendar(Locale aLocale) 使用預設時區和給定的區域設定構造一個基於當前時間的GregorianCalendar。 |
| 6 | GregorianCalendar(TimeZone zone) 使用給定的時區和預設區域設定構造一個基於當前時間的GregorianCalendar。 |
| 7 | GregorianCalendar(TimeZone zone, Locale aLocale) 使用給定的時區和給定的區域設定構造一個基於當前時間的GregorianCalendar。 |
以下是GregorianCalendar類提供的一些有用的支援方法:
| 序號 | 方法及描述 |
|---|---|
| 1 | void add(int field, int amount) 根據日曆規則,將指定的時間量(帶符號)新增到給定的時間欄位。 |
| 2 | protected void computeFields() 將UTC毫秒轉換為時間欄位值。 |
| 3 | protected void computeTime() 重寫Calendar,將時間欄位值轉換為UTC毫秒。 |
| 4 | boolean equals(Object obj) 將此GregorianCalendar與物件引用進行比較。 |
| 5 | int get(int field) 獲取給定時間欄位的值。 |
| 6 | int getActualMaximum(int field) 返回給定當前日期下,此欄位可能具有的最大值。 |
| 7 | int getActualMinimum(int field) 返回給定當前日期下,此欄位可能具有的最小值。 |
| 8 | int getGreatestMinimum(int field) 如果變化,則返回給定欄位的最高最小值。 |
| 9 | Date getGregorianChange() 獲取格里高利曆更改日期。 |
| 10 | int getLeastMaximum(int field) 如果變化,則返回給定欄位的最低最大值。 |
| 11 | int getMaximum(int field) 返回給定欄位的最大值。 |
| 12 | Date getTime() 獲取此日曆的當前時間。 |
| 13 | long getTimeInMillis() 以長整型獲取此日曆的當前時間。 |
| 14 | TimeZone getTimeZone() 獲取時區。 |
| 15 | int getMinimum(int field) 返回給定欄位的最小值。 |
| 16 | int hashCode() 重寫hashCode。 |
| 17 | boolean isLeapYear(int year) 確定給定年份是否是閏年。 |
| 18 | void roll(int field, boolean up) 在給定的時間欄位上新增或減去(向上/向下)一個時間單位,而不更改較大的欄位。 |
| 19 | void set(int field, int value) 使用給定值設定時間欄位。 |
| 20 | void set(int year, int month, int date) 設定年份、月份和日期欄位的值。 |
| 21 | void set(int year, int month, int date, int hour, int minute) 設定年份、月份、日期、小時和分鐘欄位的值。 |
| 22 | void set(int year, int month, int date, int hour, int minute, int second) 設定年份、月份、日期、小時、分鐘和秒欄位的值。 |
| 23 | void setGregorianChange(Date date) 設定格里高利曆更改日期。 |
| 24 | void setTime(Date date) 使用給定的Date設定此日曆的當前時間。 |
| 25 | void setTimeInMillis(long millis) 使用給定的長整型值設定此日曆的當前時間。 |
| 26 | void setTimeZone(TimeZone value) 使用給定的時區值設定時區。 |
| 27 | String toString() 返回此日曆的字串表示形式。 |
示例
import java.util.*;
public class GregorianCalendarDemo {
public static void main(String args[]) {
String months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
int year;
// Create a Gregorian calendar initialized
// with the current date and time in the
// default locale and timezone.
GregorianCalendar gcalendar = new GregorianCalendar();
// Display current time and date information.
System.out.print("Date: ");
System.out.print(months[gcalendar.get(Calendar.MONTH)]);
System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
System.out.println(year = gcalendar.get(Calendar.YEAR));
System.out.print("Time: ");
System.out.print(gcalendar.get(Calendar.HOUR) + ":");
System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
System.out.println(gcalendar.get(Calendar.SECOND));
// Test if the current year is a leap year
if(gcalendar.isLeapYear(year)) {
System.out.println("The current year is a leap year");
}else {
System.out.println("The current year is not a leap year");
}
}
}這將產生以下結果:
輸出
Date: Apr 22 2009 Time: 11:25:27 The current year is not a leap year
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP