【Java】【常用类】Calendar 日历类

Calendar 日历类,我居然念错发音,来,好好看下音标  ['kælɪndə]  卡琳达

public class DateTest {
    public static void main(String[] args) throws ParseException {
        // Calendar 是一个抽象类 这个方法返回的是子类的实例
        Calendar calender = Calendar.getInstance();
        Class<? extends Calendar> calenderClass = calender.getClass();
        System.out.println(calenderClass); //   class java.util.GregorianCalendar
    }
}

 

get

set

getTime

setTime

public class DateTest {
    public static void main(String[] args) throws ParseException {
        Calendar calender = Calendar.getInstance();

        // 这个周的第几天
        int dayOfWeek = calender.get(Calendar.DAY_OF_WEEK);
        System.out.println("这个周的第几天" + dayOfWeek);

        // 这个月的第几天
        int dayOfMonth = calender.get(Calendar.DAY_OF_MONTH);
        System.out.println("这个月的第几天" + dayOfMonth);

        // 这个月的这个周的第几天
        int dayOfWeekInMonth = calender.get(Calendar.DAY_OF_WEEK_IN_MONTH);
        System.out.println("这个月的这个周的第几天" + dayOfWeekInMonth);

        // 这个年的第几天
        int dayOfYear = calender.get(Calendar.DAY_OF_YEAR);
        System.out.println("这个年的第几天" + dayOfYear);

        // set
        calender.set(Calendar.DAY_OF_WEEK_IN_MONTH,-1);
        System.out.println(calender.get(Calendar.DAY_OF_WEEK_IN_MONTH));

        // add 方法,如果要减去天数,直接取负值即可
        calender.add(Calendar.DAY_OF_WEEK_IN_MONTH,1);

        // 日历对象转换日期对象 getTime();
        Date time = calender.getTime();

        // 日期对象 转 日历类 setTime(new Date());
        calender.setTime(new Date());
        int day = calender.get(Calendar.DAY_OF_YEAR);
        System.out.println(day);

    }
}

 

日历类也弃用了,主要问题

可变性,日期和时间的类实例不应该发生改变

偏移性,Date中的年份从1900年份,月份从0开始????

格式化只对Date有用,Calendar不行

线程还不安全,不能处理闰秒???

 

posted @ 2020-04-19 21:02  emdzz  阅读(320)  评论(0编辑  收藏  举报