12.Data类和Calendar类

data类

  • data表示特定的瞬间,精确到毫秒。Data类中的大部分方法都已经被Calendar类中的方法所取代。

  • 时间单位:

    • 1秒 = 1000毫秒
    • 1毫秒 = 1000微秒
    • 1微秒 = 1000纳秒
  • package Data;
    
    import java.util.Date;
    
    public class Test {
        public static void main(String[] args) {
            //1.创建Data对象
            // 今天的时间
            Date date1 = new Date();
            System.out.println(date1.toLocaleString());// 返回当前时间
            // 昨天
            Date data2 = new Date(date1.getTime() - (60 * 60 * 24 * 1000));
            System.out.println(data2.toLocaleString());// 返回昨天此时时间
            //2.方法after  before
            boolean b1 = date1.after(data2);
            System.out.println(b1); // true
            boolean b2 = date1.before(data2);
            System.out.println(b2); // false
    
            //比较 compareTo();
            int d = date1.compareTo(data2);
            System.out.println(d); // 1
    
            //比较是否相等
            boolean equals = date1.equals(data2);
            System.out.println(equals);// false
        }
    }
    

Calendar类

  • Calendar提供了获取或设置各种日历字段的方法。

  • 构造方法:

    protected Calendar() // 由于修饰符是protected,所以无法直接创建该对象。
    
  • 其他方法

  • static Calendar getlnstance() // 使用默认时区和区域获取日历
    
    void set(int year,int month,int data,int hourofday,int minute,int second) // 设置日历的年、月、日、时、分、秒。
    
    int get(int field) // 返回给定日历字段的值。字段比如年、月、日等
    
    void setTime(Data data) // 用给定的Data设置此日历的时间。Data-Calendar
    
    Data getTime() // 返回一个Data表示此日历的时间。Calendar-Date
    
    void add(int field,int amount) // 按照日历的规则,给指定字段添加或减少时间量。
    
    long getTimeInMillies() // 毫秒为单位返回该日历的值
    
  • package Calendar;
    
    import java.util.Calendar;
    
    public class Test01 {
        public static void main(String[] args) {
            // 1.创建Calendar对象(不能直接new)
            Calendar calendar = Calendar.getInstance();
            System.out.println(calendar.getTime().toLocaleString());// 2021年8月4日 上午10:13:44
            System.out.println(calendar.getTimeInMillis());// 1628043224383
            // 2.获取时间信息
            // 获取年份
            int year = calendar.get(calendar.YEAR);
            // 获取月份
            int month = calendar.get(calendar.MONTH);
            // 获取日
            int day = calendar.get(calendar.DAY_OF_MONTH);// Date
            // 小时
            int hour = calendar.get(calendar.HOUR_OF_DAY);//HOUR 十二小时制;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+"秒");// 2021年8月4日10时13分44秒
            // 修改时间
            Calendar calendar2 = Calendar.getInstance();
            calendar2.set(calendar.DAY_OF_MONTH,6);
            System.out.println(calendar2.getTime().toLocaleString()); // 2021年8月6日 上午10:13:44
    
            // 4. add方法修改时间
            calendar2.add(calendar.HOUR,1);//增加一小时
            System.out.println(calendar2.getTime().toLocaleString()); // 2021年8月6日 上午11:13:44
    
            // 5.补充方法
            int max = calendar2.getActualMaximum(Calendar.DAY_OF_MONTH);
            int min = calendar2.getActualMinimum(Calendar.DAY_OF_MONTH);
    
            System.out.println(max);// 31
            System.out.println(min); // 1
        }
    }
    

SimpleDateFormat

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

  • 进行格式化(日期 —> 文本)、解析(文本 —> 日期)。

  • 常用的时间模式字母[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-00HaQKuG-1629187789796)(C:\Users\LXK\AppData\Roaming\Typora\typora-user-images\image-20210804102927264.png)]

  • package Calendar;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class Test02 {
        public static void main(String[] args) throws Exception{
            // 1.创建SimpleDateFormat对象 y:年  m: 月
    //        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH-mm-ss");
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
            //2. 创建Date
            Date date = new Date();
            // 3.格式化Date(把日期转成字符串)
            String format = simpleDateFormat.format(date);
            System.out.println(format);
            // 解析(把字符串转成日期)
             Date date2 = simpleDateFormat.parse("1990/05/01");
            System.out.println(date2);
        }
    }
    

System类

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

  • static void arraycopy(...) //复制数组
    
    static long currentTimeMillis(); // 获取当前系统时间,返回的是毫秒值
    
    static void gc(); // 建议JVM赶快启动垃圾回收器回收垃圾
    
    static void exit(int status); // 退出jvm,如果参数是0表示正常退出jvm,非0表示异常退出jvm
    
    package Calendar;
    
    import java.sql.SQLOutput;
    
    public class Test03 {
        public static void main(String[] args) {
            // 1.arraycopy:实现数组赋值
            // src :源数组
            // srcPos:从哪个位置开始复制
            // dest :目标数组
            // destPos :目标数组的位置
            // length:复制的长度
            int[] arr = {20,18,15,8,35,26,45,90};
            int[] dest = new int[8];
    
            System.arraycopy(arr,1,dest,0,5);
            for (int i = 0; i < dest.length; i++) {
                System.out.println(dest[i]);
            }
            //获取当前系统时间,返回的是毫秒值
            System.out.println(System.currentTimeMillis());
            long start =System.currentTimeMillis();
            for (int i = 0; i <999999999 ; i++) {
                for (int j = 0; j <999999999 ; j++) {
                    int trsult = i+j;
                }
            }
            long end = System.currentTimeMillis();
            System.out.println("用时"+(end-start));
        }
    }
    

总结

  • 内部类:
    • 在一个类的内部再定义一个完整的类。
    • 成员内部类、静态内部类、局部内部类、匿名内部类
  • Object类:
    • 所有类的直接或间接父类,可存储任何对象。
  • 包装类:
    • 基本数据类型所对应的引用数据类型,可以使Object统一所有数据。
  • String类:
    • 字符串是常量,创建之后不可改变,字面值保存在字符串池中,可以共享。
  • BigDecimal:
    • 可精确计算浮点数。
  • Date
    • 特定时间
  • Calendar
    • 日历
  • SimpleDateFormat
    • 格式化时间
  • System
    • 系统类

ct类:

  • 所有类的直接或间接父类,可存储任何对象。
  • 包装类:
    • 基本数据类型所对应的引用数据类型,可以使Object统一所有数据。
  • String类:
    • 字符串是常量,创建之后不可改变,字面值保存在字符串池中,可以共享。
  • BigDecimal:
    • 可精确计算浮点数。
  • Date
    • 特定时间
  • Calendar
    • 日历
  • SimpleDateFormat
    • 格式化时间
  • System
    • 系统类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值