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