首页 > 编程语言 >java8将日期格式yyyyMM转换为LocalDate

java8将日期格式yyyyMM转换为LocalDate

时间:2022-11-07 00:01:54浏览次数:66  
标签:fmt parse YearMonth DateTimeFormatter yyyyMM LocalDate java8

LocalDate: parse yyyy-MM

当我们希望将一个yyyyMM格式的日期转换为LocalDate的时候,不出意外会报错java.time.format.DateTimeParseException
因为LocalDate是需要指定到具体的一天的,所以当我们想解析202211这个字符串时因为没有对应的这个月的哪一天,所以运行的时候会报错,导致无法构建LocalDate的实例。

解决方法一

如果你只是想分析了一年一个月,你可以使用YearMonth对象,然后再根据YearMonth对象获取对应月的其中一天:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMM");
YearMonth ym = YearMonth.parse("202211", fmt);
LocalDate dt = ym.atEndOfMonth();

解决方法二

但是,如果想直接解析为LocalDate对象,那么就需要自定义一个DateTimeFormatter,在其中指定该月的第一天为默认值:

DateTimeFormatter fmt = new DateTimeFormatterBuilder()
    .appendPattern("yyyy-MM")
    .parseDefaulting(ChronoField.DAY_OF_MONTH, 1)
    .toFormatter();
LocalDate dt = LocalDate.parse("202011", fmt);

  

本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。

首发链接:https://www.cnblogs.com/lingyejun/p/16864689.html

标签:fmt,parse,YearMonth,DateTimeFormatter,yyyyMM,LocalDate,java8
From: https://www.cnblogs.com/lingyejun/p/16864689.html

相关文章

  • Java8新特性:函数式编程
    1.概述函数式编程学习目的:能够看懂公司里的代码大数据量下处理集合效率更高代码可读性高消灭嵌套地狱函数式编程思想:面向对象思想需要关注用什么对象完成什么事......
  • JAVA8-Lambda- anyMatch&allMatch(检查流是否满足给定的条件)
    一、anyMatch(检查流中是否至少包含一个满足条件的元素)代码示例:publicstaticvoidmain(String[]args){ArrayList<Student>list=newArrayList<>();lis......
  • JAVA8-Lambda-FindFirst(获取列表中出现的第一条记录)
    寻找列表中的第一个元素描述:代码示例中list列表存在三条记录,findFirst是找出第一个出现的记录信息。publicstaticvoidmain(String[]args){ArrayList<Stu......
  • JAVA8-Lambda-distinct(去重)
    去除重复元素/重复对象使用去重API//注意:Student对象需要重写equals方法和hashcode方法publicstaticvoidmain(String[]args){ArrayList<Student......
  • JAVA8-Lambda-(sorted+Comparator)排序
    使用场景:排队的时候按照个子大小排队使用API排序和MySql中的升序降序规则一样。在排序时需要注意的是降序需要用到reversed();publicstaticvoidmain(String[]......
  • IDEA java8_API 中文提示
    在IDEA中,鼠标划到类上,提示的大段英文,总是不太好理解,如果直接显示英文就不用再翻译了。1.首先,从网上下载java8的中文api文档,chm格式;2.然后解包,获得html文件,命令......
  • JAVA8-Lambda-forEach遍历List/Map
    一、遍历List代码示例publicstaticvoidmain(String[]args){List<String>list=Arrays.asList("北","上","广","深");list.forEach(System.out::prin......
  • JAVA8-Lambda-Filter过滤
    我们通常会将一个集合中不符合条件的对象过滤掉,只保留我们需要的对象。代码示例:publicstaticvoidmain(String[]args){ArrayList<Student>list=newArrayL......
  • JAVA8-Lambda-List转Map
    List转Map需要注意点是在收集map时Collectors.toMap()建议选三个入参的方法。示例如下:(注意list中的“张三”有两个我们将其作为Map的key)####无第三个参数示例pu......
  • Redis Desktop Manager连不上服务器的redis; Java 死锁; 泛型; 事务; servlet; Spring事务;
    RedisDesktopManager连不上服务器的redis1、首先有没有设置密码,输入的密码是否正确2、那个IP是内网IP嘛?外网的要加SSH总结一下无论是连MySQL、MongoDB、还是redisip如果......