java8 中的时间和数据的变化

  java8除了lambda表达式之外还对时间和数组这两块常用API做想应调整,

Stream 有几个常用函数:

store 排序 (a,b)-> a.compareTo(b)  排出来的结果是正序,从小到大 如果(a,b)->b.compareTo(a) 排出来的结果是从大到小

filter 拦截,过滤.根据条件过滤

forEeach 迭代每个元素

map 变更或者替换

limit 长度或者符合数量的限制

skip 跳到某个开始点,skip和limit组合可以制造分页的效果

sum ,count是常规聚合参数

distinct 去除重复数据,这里的去重比较是两个对象是否相等 object.equal(object).不能实现根据某个字段属性进行去重.当然单纯根据属性去重也不符合正常逻辑

ps:这些组合所需循环是一次的,很高效

 

java8中日期时间的API

 1     //java8 时间API的更新
 2         Clock clock=Clock.systemUTC();
 3         System.out.println(clock.millis());
 4         //时间线 Instant
 5         Instant instant =Instant.now();
 6         Thread.sleep(1000);
 7         Instant end = Instant.now();
 8         //时间间隔 duration
 9         Duration duration=Duration.between(instant, end);
10         System.out.println("this time :"+duration.toMillis());
11         //本地日期 没有时分秒的
12         LocalDate localDate= LocalDate.now();
      //TemporalAjusters 时间运算
13 LocalDate localDate1= localDate.with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.FRIDAY)); 14 System.out.println(localDate1); 15 //自定义日期矫正器 利用plus*方法可以很方便对时间进行运行
16 17 TemporalAdjuster Next_WorkDay = w -> {//自定义校正器 18 LocalDate resultDate = (LocalDate) w; 19 do { 20 resultDate = resultDate.plusMonths(1).plusDays(-1); 21 } while (resultDate.getDayOfWeek().getValue() >= 6); 22 return resultDate; 23 }; 24 25 LocalDate localDate2 =localDate1.with(Next_WorkDay); 26 System.out.println("下个月的时间"+localDate2); 27 //时间格式,关键是本地时间!!用有时分秒的 28 LocalDateTime localDateTime = LocalDateTime.now(); 29 System.out.println("time type:"+DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format( 30 localDateTime));// 语言相关格式 时间格式转换也封装比较好了 31 32 System.out.println("time type:"+DateTimeFormatter.ofPattern("yyyy/mm/dd hh").format( 33 localDateTime));

 

posted @ 2016-03-09 11:27  钟政123  阅读(314)  评论(0编辑  收藏  举报