06_Calendar类_SimpleDateFormat类_System类

一、Calendar类

Calendar的构造方法是protected Calendar(),由于修饰符是protected ,所以无法直接创建该对象,需要使用Calendar.getInstance();创建。

其他方法:

代码示例:

import java.util.Calendar;

public class demo01 {
    public static void main(String[] args) {
        //创建Calendar对象
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.getTime().toLocaleString());
        System.out.println(calendar.getTimeInMillis());

        //获取时间信息
        //获取年
        int year = calendar.get(Calendar.YEAR);
        //获取月(值的范围:0-11)
        int month = calendar.get(Calendar.MONTH);
        //获取日
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        //获取小时
        int hour = calendar.get(Calendar.HOUR_OF_DAY);//HOUR_OF_DAY 24小时制;HOUR 12小时制
        //获取分钟
        int minute = calendar.get(Calendar.MINUTE);
        //获取秒
        int second = calendar.get(Calendar.SECOND);
        System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+":"+minute+":"+second);

        //修改时间
        Calendar calendar2 = Calendar.getInstance();
        calendar2.set(Calendar.DAY_OF_MONTH,29);
        System.out.println(calendar2.getTime().toLocaleString());

        //add方法修改时间
        calendar2.add(Calendar.MONTH, +1);
        System.out.println(calendar2.getTime().toLocaleString());

        //补充,getActualMaximum(),getActualMinimum()方法
        System.out.println(calendar2.getActualMaximum(Calendar.DAY_OF_MONTH));
        System.out.println(calendar2.getActualMinimum(Calendar.DAY_OF_MONTH));
    }
    
}

二、SimpleDateFormat类

SimpleDateFormat类是一个以语言环境有关的方式来格式化和解析日期的具体的类。

进行格式化(日期 --> 文本),解析(文本 --> 日期)

常用的时间模式字母:

代码:

public class demo02 {
    public static void main(String[] args) throws ParseException {
        //创建对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        //创建Date
        Date date = new Date();
        //格式化date
        String s = sdf.format(date);
        System.out.println(s);

        //解析
        Date date1 = sdf.parse("2035年09月22日");
        System.out.println(date1);
    }
}

格式化:format(Date date);

解析:parse(String source);

三、System类

System系统类,主要用于获取系统的属性数据和其他操作,构造方法是私有的。

1、System.arraycopy()复制数组

5个属性解释如下:
//src,源数组
//srcPos,从哪个位置开始复制
//dest,目标数组
//destPos,目标数组的位置
//length,复制的长度

arraycopy()底层框架是c/c++,运行速度要比Arrays.copyOf()快。

2、System.currentTimeMillis(),获取系统当前时间,单位毫秒

3、System.gc(),建议JVM赶快启动垃圾回收器回收垃圾

​ 如果创建的对象很多,也不一定会全部回收,如下代码展示的,有很多对象,每次回收的都不一样。

4、System.exit(int status),退出JVM,如果参数是0表示正常退出JVM,非0表示异常退出JVM

public class demo03 {
    public static void main(String[] args) {
//        System.arraycopy()复制数组
        int[] arr = {1,2,3,4,5,6,7,8};
        int[] dest = new int[8];
        System.arraycopy(arr,0,dest, 0, arr.length);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(dest[i]);
        }


//        System.currentTimeMillis(),获取系统当前时间,单位毫秒
        long start = System.currentTimeMillis();
        for (int i = 0; i < 999; i++) {
            for (int j = 0; j < 999; j++) {
                System.out.print(i+j+" ");
            }
        }
        long end = System.currentTimeMillis();
        System.out.println(end-start);


//        System.gc(),建议JVM赶快启动垃圾回收器回收垃圾
        new Student("aaa",20);
        new Student("bbb",20);
        new Student("ccc",20);
        new Student("ddd",20);
        new Student("dd",20);
        new Student("d",20);
        new Student("wwww",20);
        new Student("eee",20);
        new Student("ccc",20);
        new Student("ccc",20);
        new Student("ccc",20);
        new Student("ccc",20);
        new Student("ccc",20);
        new Student("ccc",20);
        new Student("ccc",20);
        new Student("ccc",20);
        new Student("ccc",20);

        System.gc();//告诉垃圾回收器回收垃圾


//        System.exit(int status),退出JVM,如果参数是0表示正常退出JVM,非0表示异常退出JVM
        System.exit(0);
        System.out.println("退出执行");

    }

}
posted @ 2024-07-29 23:17  美的梦里国  阅读(45)  评论(0)    收藏  举报