详解 GregorianCalendar 类

发布时间:2023-05-19

GregorianCalendar类是Java.util包中的一个类,它是一个具体的子类,是Calendar抽象类的一个实现。

一、GregorianCalendar如何读取?

为了获得一个GregorianCalendar对象,我们可以在几种方式之间进行选择。 1.使用无参构造函数

// 创建一个当前时间的GregorianCalendar对象
GregorianCalendar calendar = new GregorianCalendar();

2.使用指定时区偏移值的构造函数

// 这将创建一个代表紧凑格林威治标准时间(GMT)时区的对象
GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("GMT"));

二、GregorianCalendar的意思

GregorianCalendar是为了纪念教皇格雷戈里十三世(Pope Gregory XIII)而命名的。

三、GregorianCalendar类获取当前周几

GregorianCalendar类提供了获取当前周几的方法。

// 获取当前日期是星期几
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
// 星期日为1,星期一为2……星期六为7

四、GregorianCalendar.add的使用

GregorianCalendar类提供了在当前日期上添加或减去一定数量的时间单位的方法。此方法可以实现日期的增加和减少。通过add()方法,可以增加或减少年、月、日、时、分、秒等。

// 将日期加1天
calendar.add(Calendar.DAY_OF_MONTH, 1);

五、GregorianCalendar与时区的协作

GregorianCalendar类会在一个特定的时区下工作。调用不带参数的构造函数时,它将使用当前时区。时间单位可以通过setTimeZone()方法进行设置。

// 设置日期的时区为东京
calendar.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));

六、GregorianCalendar所起源的历史

在公历1582年10月4日到15日之间,教皇格雷戈里十三世引入了新的公历,称为格里高利历,以取代自公元前45年所使用的儒略历(Julian Calendar),以纠正儒略历导致农历、公历的日期不同步的问题。 其实繁琐的历法问题自古以来就存在,不是只有儒略历才混淆了人们的头脑。例如,早在中国的商朝时期,中央政府就掌握了一个叫做“律”(又称“祭律”)的历法,它的基本思想是依据天文观测,规定天文现象与政治、农业的关系。后来的周朝将“律”改良为以甲子为庚子、壬子、辛巳、甲午、甲戌、癸卯……循环的“岁”(循环60年一周期),中国历法也因此开始了它的“公历”时代。