日期与时间、包装类概念、正则表达式

Date 类

Date类代表当前所在系统的日期时间信息。

SimpleDateFormat 类

可以去完成日期时间的格式化操作

1、SimleDateFormat可以格式化哪些时间形式?

Date日期对象,时间毫秒值。

2、SimpleDateFormat如何进行字符串时间的解析的?

通过一个方法: public Date parse​(String source)

  //格式化日期对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
        String rs = sdf.format(d);
        System.out.println(rs);//2022年03月03日 14:14:51 周四 下午

Calendar概述

Calendar代表了系统此刻日期对应的日历对象。

Calendar是一个抽象类,不能直接创建对象。

//获取当前日历对象
        Calendar cal = Calendar.getInstance();
        System.out.println(cal);
        //取日期中的某个字段信息。
        int year = cal.get(Calendar.YEAR);
        System.out.println(year);
        int mon = cal.get(Calendar.MARCH) + 1;//3
        System.out.println(mon);
        int day = cal.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);
        //修改日历
        cal.set(Calendar.YEAR, 2002);
        System.out.println(cal.get(Calendar.YEAR));

 

        LocalDate today = LocalDate.now();
        System.out.println(today);
        //1、 Duration:  用于计算两个“时间”间隔。
        //2、 Period:      用于计算两个“日期”间隔。
        LocalDate birthDate = LocalDate.of(1998,7,23);
        System.out.println(birthDate);

        Period period = Period.between(birthDate,today);
        System.out.println(period.getYears() + " " +
                period.getMonths() + " " + period.getDays());
        /**
         * Duration
         * 在Java8中,我们可以使用以下类来计算时间间隔差异:java.time.Duration
         * 提供了使用基于时间的值测量时间量的方法。
         * 用于 LocalDateTime 之间的比较。也可用于Instant 之间的比较。
         */
        LocalDateTime today2 = LocalDateTime.now();
        LocalDateTime birthDate2 = LocalDateTime.of(1998,7,23,20,00,00);
        Duration duration = Duration.between(birthDate2 , today2);//后参数-前参数
        System.out.println(duration.toDays());
        System.out.println(duration.toHours());

        //ChronoUnit类可用于在单个时间单位内测量一段时间,这个工具类是最全的了,可以用于比较所有 
        的时间单位
        System.out.println("相差年数:" + ChronoUnit.YEARS.between(birthDate2,today2));

包装类

Java为了实现一切皆对象,为8种基本类型提供了对应的引用类型。

后面的集合和泛型其实也只能支持包装类型,不支持基本数据类型。

 

String number = "23";
System.out.println(Integer.valueOf(number));//23
String number1 = "22.3";
System.out.println(Double.valueOf(number1));//22.3

 正则表达式

 正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性。

String names = "小路dhdfhdf342蓉儿43fdffdfbjdfaf小何";
        //public String[] split(String regex):按照正则表达式匹配的内容进行分割字符串,反回一个字符串数组。
        String[] arrs = names.split("\\w+");
        for (int i = 0; i < arrs.length; i++) {
            System.out.println(arrs[i]);//
        }
        // public String replaceAll(String regex,String newStr)按照正则表达式匹配的内容进行替换
        String names2 = names.replaceAll("\\w+", "  ");
        System.out.println(names2);//小路  蓉儿  小何

 Arrays.sort(students, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                // 自己指定比较规则
                // return o1.getAge() - o2.getAge(); // 按照年龄升序排序!
                // return o2.getAge() - o1.getAge(); // 按照年龄降序排序!!
                // return Double.compare(o1.getHeight(), o2.getHeight()); // 比较浮点型可以这样写 升序
                return Double.compare(o2.getHeight(), o1.getHeight()); // 比较浮点型可以这样写  降序
            }
        });
        System.out.println(Arrays.toString(students));

 

 1、Lambda表达式的基本作用?

简化函数式接口的匿名内部类的写法。

2、Lambda表达式有什么使用前提?

必须是接口的匿名内部类,接口中只能有一个抽象方法    

可以在函数式接口上使用Lambda表达式。所谓函数式接口,就是只定义一个抽象方法的接口。

 goSwimming( () -> {     

System.out.println("铁汁, 我们去游泳吧~") } );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值