Calendar的一些知识

Calendar类的方法
1. getInstance()静态方法

/*该方法返回Calendar类的子类对象;为什么说『返回Calendar类的子类对象』?首先Calendar类是一个抽象类,所以不存在所谓的Calendar类的实例,其次在地球上有很多不同的时区,不同的时区就要对应不同的Calendar类的的子类(每个国家都有自己的一套日历算法,比如西方的国家的第一个星期大部分为星期日,而中国则为星期一,等等)*/

Calendar.getInstance();

源码是:

/*函数功能:创建一个新的Calendar子类对象(封装了createCalendar) 
 *请参说明:没有参数,主要实现都在createCalendar里面了...
 */
public static Calendar getInstance()
{
    Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault(Locale.Category.FORMAT));
    cal.sharedZone = true;
    return cal;
 }

/*函数功能:根据不同国家地区构造对应的日期类,当调用geInstaance时会自动调用该方法(被封装到calendar.getInstance()方法内)
*请参说明:zone->时区,java.util.Locale主要用来在软件的本地化时使用,本身没有什么作用,更多的是作为一个参数辅助其它的方法完成输出的本地化
*/

Calendar类是一个抽象类(Calendar类不能直接创建实例),它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下个星期的日期)提供了一些方法;瞬间可用毫秒值来表示,它是距历元(格林威治时间1970年1月1日的00:00:00.000)的偏移量

Calendar类如果要创建实例,必须通过getInstance方法构造Calendar的子类对象

Calendar cal = Calendar.getInstance();
// 设置一年中的第一天
cal.set(Calendar.DAY_OF_YEAR, cal.get(Calendar.DAY_OF_YEAR) - 1);

猜你喜欢

转载自blog.csdn.net/jikefzz1095377498/article/details/81116521