java - 字符串中的月年至今 Java 8

标签 java java-8

DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("MM/yyyy");
LocalDate parsedDate = LocalDate.parse(entryOne.getKey(), dateFormat)

获取异常

Text '03/2018' could not be parsed: Unable to obtain LocalDate from TemporalAccessor:

如何使用具有默认月份第一天的 Java 8 解析此字符串并转换为日期。我们使用的东西。

TemporalAdjusters.firstDayOfMonth()

最佳答案

MM/yyyy 字符串转换为 LocalDate 时,您有两种选择:

  • 解析为 YearMonth,然后转换为 LocalDate:

    String date = "04/2018";
    DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("MM/yyyy");
    YearMonth yearMonth = YearMonth.parse(date, dateFormat);
    LocalDate parsedDate = yearMonth.atDay(1);
    System.out.println(parsedDate); // prints: 2018-04-01
    
  • 使用定义了默认月份日期的 DateTimeFormatter:

    String date = "04/2018";
    DateTimeFormatter dateFormat = new DateTimeFormatterBuilder()
            .appendPattern("MM/yyyy")
            .parseDefaulting(ChronoField.DAY_OF_MONTH, 1)
            .toFormatter();
    LocalDate parsedDate = LocalDate.parse(date, dateFormat);
    System.out.println(parsedDate); // prints: 2018-04-01
    

关于java - 字符串中的月年至今 Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50106376/

相关文章:

java - 使用 currentTimeMillis 并关闭 6 小时

java - slf4j + java.util.logging : how to configure?

java - 将流 sum() 方法应用于列表的 N 个不同字段,在一次迭代中给出 N 个总和结果

java - 如何正确计时用 Java Spring MVC 编写的配置文件 API?

java - 我们如何计算正多边形内最大圆的直径?

java - 获取没有客户端 ID 的 kafka 主题指标

Java初始值?

java - Spring 4 + Cassandra 3.4 + 不工作

javascript - Java Nashorn 中的(取消)引用方法变体

Java 使用重复代码的简写