【问题标题】:Formatting dates inside a Function<T,R>在 Function<T,R> 中格式化日期
【发布时间】:2018-09-20 08:54:42
【问题描述】:

我正在尝试在功能界面中格式化日期,但我不知道是否可行

SimpleDateFormat dt1 = new SimpleDateFormat("ddmmyyyyy");

List<MenuPrice> menuPrices = findAll(restaurant);

menuPrices.parallelStream()
          .collect(Collectors.groupingBy(dt1.format(MenuPrice::getUpdateDate)));

【问题讨论】:

    标签: java lambda java-8 functional-programming java-stream


    【解决方案1】:

    有可能,但没有方法参考:

    Map<String,List<MenuPrice>>
        menuPrices.parallelStream()
                  .collect(Collectors.groupingBy(m -> dt1.format(m.getUpdateDate())));
    

    【讨论】:

      【解决方案2】:

      你可以为那个顺便说一句创建一个方法,让事情变得更易读:

      private static String formatUpdatedDate(MenuPrice menu){ 
           return dt1.format(menu.getUpdatedDate());
      }
      

      并使用它:

       .collect(Collectors.groupingBy(YourClass::formatUpdatedDate)
      

      【讨论】:

      • SimpleDateFormat 变量完全可以是静态方法中的局部变量:)
      猜你喜欢
      • 1970-01-01
      • 2021-06-29
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 2021-02-23
      • 1970-01-01
      相关资源
      最近更新 更多