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("铁汁, 我们去游泳吧~") } );