JavaSE常用类day09

JavaSE常用类day09

Date类

  • Date表示特定的瞬间,精确到毫秒。Date类大部分的方法已经被Calendar类中的方法取代。
package category.Demo02;

import java.util.Date;

public class Demo08 {
    public static void main(String[] args) {
        //1。创建date对象
        Date date1 = new Date();
        System.out.println(date1.toString());

        //2.昨天
        Date date2 =new Date(date1.getTime()-(60*60*24*1000));
        System.out.println(date2.toString());

        //方法 boolean  after before
        boolean b1 =date1.after(date2);
        System.out.println(b1);
        boolean b2 =date1.before(date2);
        System.out.println(b2);

        //比较 compareTo();
        int d=date1.compareTo(date2);
        System.out.println(d);
    }
}



结果:
Mon Jul 20 09:38:48 CST 2020
Sun Jul 19 09:38:48 CST 2020
true
false
1

Calendar类

  • Calendar提供了获取或设置各种日历字段的方法
  • 构造方法
    • protected Calendar() :由于修饰符是protected,所以无法直接创建该对象
package category.Demo02;

import java.util.Calendar;

public class Demo09 {
    public static void main(String[] args) {
        //1.创建Calendar对象
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.getTime().toLocaleString());
        System.out.println(calendar.getTimeInMillis());
        //2.获取时间点
        //获取年
        int year=calendar.get(Calendar.YEAR);
        //月
        int month=calendar.get(Calendar.MONTH);
        //日
        int day=calendar.get(Calendar.DAY_OF_MONTH);
        //小时
        int hour=calendar.get(Calendar.HOUR_OF_DAY);
        //分钟
        int minute=calendar.get(Calendar.MINUTE);
        //秒
        int second = calendar.get(Calendar.SECOND);
        System.out.println(year+"年"+(month+1)+"月"+
                day+"日"+hour+":"+minute+":"+second);//老外把月是从0开始的
        //修改时间
       Calendar calendar2= Calendar.getInstance();
       calendar2.set(Calendar.DAY_OF_MONTH,5);//把天改为5
       System.out.println(calendar2.getTime().toLocaleString());
       //add 方法修改的时间
        calendar2.add(Calendar.HOUR,-1);
        System.out.println(calendar2.getTime().toLocaleString());

        //5.补充方法
        int max=calendar2.getActualMaximum(Calendar.DAY_OF_MONTH);
        int min=calendar2.getActualMinimum(Calendar.DAY_OF_MONTH);
        System.out.println(max);
        System.out.println(min);

    }
}


结果:
2020-7-20 10:12:05
1595211125128
202072010:12:5
2020-7-5 10:12:05
2020-7-5 9:12:05
31
1

SimpleDateFormat类

  • SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。
  • 进行格式化(日期—>文本),解析(文本—>日期)。
  • 常用的时间模式字母
字母日期或时间示例
y2019
M年中月份08
d月中天数10
H1天中小时数(0-23)22
m分钟16
s59
S毫秒367
package category.Demo02;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo10 {
    public static void main(String[] args) throws Exception{
        //1.创建SimpleDateFormat对象 y M
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd");
        //2.创建Date
        Date date = new Date();
        //格式化date(把日期转换成字符串)
        String str =sdf.format(date);
        System.out.println(str);
        //解析 (把字符串转成日期)

        Date date2 =sdf2.parse("1990/05/01");
        System.out.println(date2);
    }
}



结果:
2020072010:37:20
Tue May 01 00:00:00 CDT 1990

System类

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

package category.Demo02;

import category.Demo01.Student;

public class Demo11 {
    public static void main(String[] args) {
        //arraycopy,数组的复制
        //src,原数组
        //srcPos:从那个位置开始复制0
        //dest:目标数组
        //destPos:目标数组的位置
        //length:复制的长度
        int[] arr = {20, 18, 15, 8, 35, 26, 45, 90};
        int[] dest = new int[8];
        System.arraycopy(arr, 4, dest, 4, 4);
        for (int i = 0; i < dest.length; i++) {
            System.out.print(dest[i] + " ");
        }
        System.out.println();
        System.out.println("===============");
        //Arrays.copyOf(original,newLength)

        System.out.println(System.currentTimeMillis());
        long start = System.currentTimeMillis();
        for (int i = -9999999; i < 999999999; i++) {
            for (int j = -9999999; j < 999999; j++) {
                int result = i + j;
            }
        }
        long end = System.currentTimeMillis();
        System.out.println("用时:" + (end - start)+"ms");

        new Student("aaa",19);
        new Student("bbb",19);
        new Student("ccc",19);

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



结果:
0 0 0 0 35 26 45 90 
===============
1595216155583
用时:11ms
回收了ccc  19
回收了bbb  19
回收了aaa  19
package category.Demo02;

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    protected void finalize() throws Throwable {
        System.out.println("回收了"+name+"  "+age);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值