Java 日历 类与实例
Java中的日历类是一个抽象类,它提供了在一个特定的时间瞬间和一组日历字段(如月、年、小时)之间转换日期的方法。它继承了Object类并实现了Comparable, Serializable, Cloneable接口。
由于它是一个抽象类,所以我们不能使用构造函数来创建一个实例。相反,我们将不得不使用静态方法Calendar.getInstance()来实例化和实现一个子类。
- Calendar.getInstance(): 返回一个基于默认时区的当前时间的Calendar实例,并使用默认区域设置。
- Calendar.getInstance(TimeZone zone)
- Calendar.getInstance(Locale aLocale)
- Calendar.getInstance(TimeZone zone, Locale aLocale)
用 Java程序来演示getInstance()方法
// Date getTime(): It is used to return a
// Date object representing this
// Calendar's time value.
import java.util.*;
public class Calendar1 {
public static void main(String args[])
{
Calendar c = Calendar.getInstance();
System.out.println("The Current Date is:" + c.getTime());
}
}
输出:
The Current Date is:Tue Aug 28 11:10:40 UTC 2018
重要的方法和它们的用途
方法 | 描述 |
---|---|
abstract void add(int field, int amount) | 它用于根据日历的规则,在给定的日历字段中添加或减去指定的时间量。 |
int get(int field) | 它用于返回给定的日历字段的值。 |
abstract int getMaximum(int field) | 用于返回该日历实例中给定日历字段的最大值。 |
abstract int getMinimum(int field) | 用于返回该日历实例中给定日历字段的最小值。 |
Date getTime() | 它用于返回一个代表此《日历》时间值的Date对象。 |
下面的程序说明了上述方法。
程序1 :演示get()方法的Java程序。
// Program to demonstrate get() method
// of Calendar class
import java.util.*;
public class Calendar2 {
public static void main(String[] args)
{
// creating Calendar object
Calendar calendar = Calendar.getInstance();
// Demonstrate Calendar's get()method
System.out.println("Current Calendar's Year: " + calendar.get(Calendar.YEAR));
System.out.println("Current Calendar's Day: " + calendar.get(Calendar.DATE));
System.out.println("Current MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("Current SECOND: " + calendar.get(Calendar.SECOND));
}
}
输出:
Current Calendar's Year: 2018
Current Calendar's Day: 28
Current MINUTE: 10
Current SECOND: 45
程序2 :演示getMaximum()方法的Java程序。
// Program to demonstrate getMaximum() method
// of Calendar class
import java.util.*;
public class Calendar3 {
public static void main(String[] args)
{
// creating calendar object
Calendar calendar = Calendar.getInstance();
int max = calendar.getMaximum(Calendar.DAY_OF_WEEK);
System.out.println("Maximum number of days in a week: " + max);
max = calendar.getMaximum(Calendar.WEEK_OF_YEAR);
System.out.println("Maximum number of weeks in a year: " + max);
}
}
输出:
Maximum number of days in a week: 7
Maximum number of weeks in a year: 53
程序3 :演示getMinimum()方法的Java程序。
// Program to demonstrate getMinimum() method
// of Calendar class
import java.util.*;
public class Calendar4 {
public static void main(String[] args)
{
// creating calendar object
Calendar calendar = Calendar.getInstance();
int min = calendar.getMinimum(Calendar.DAY_OF_WEEK);
System.out.println("Minimum number of days in week: " + min);
min = calendar.getMinimum(Calendar.WEEK_OF_YEAR);
System.out.println("Minimum number of weeks in year: " + min);
}
}
输出:
Minimum number of days in week: 1
Minimum number of weeks in year: 1
程序4 :演示add()方法的Java程序。
// Program to demonstrate add() method
// of Calendar class
import java.util.*;
public class Calendar5 {
public static void main(String[] args)
{
// creating calendar object
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -15);
System.out.println("15 days ago: " + calendar.getTime());
calendar.add(Calendar.MONTH, 4);
System.out.println("4 months later: " + calendar.getTime());
calendar.add(Calendar.YEAR, 2);
System.out.println("2 years later: " + calendar.getTime());
}
}
输出:
15 days ago: Mon Aug 13 11:10:57 UTC 2018
4 months later: Thu Dec 13 11:10:57 UTC 2018
2 years later: Sun Dec 13 11:10:57 UTC 2020
参考资料: https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html