java – 使用DateTimeFormatter解析没有月份的日期

前端之家收集整理的这篇文章主要介绍了java – 使用DateTimeFormatter解析没有月份的日期前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试用这种格式解析日期:ddYYYY.例如,我有字符串141968,我想知道那天= 14和年= 1968.

我想我必须直接使用DateTimeFormatter.parse(String)给出的TemporalAccessor,但是我找不到如何使用这个结果.在调试时我看到结果是java.time.Parsed,它不是公共的,但在字段fieldValues中包含我想要的信息.

我该如何解析这种特殊格式?

谢谢.

解决方法

一种方法是默认缺少的月份字段:
  1. DateTimeFormatter f = new DateTimeFormatterBuilder()
  2. .appendPattern("ddyyyy")
  3. .parseDefaulting(MONTH_OF_YEAR,1)
  4. .toFormatter();
  5. LocalDate date = LocalDate.parse("141968",f);
  6. System.out.println(date.getDayOfMonth());
  7. System.out.println(date.getYear());

另一种是查询TemporalAccessor:

  1. DateTimeFormatter f = DateTimeFormatter.ofPattern("ddyyyy");
  2. TemporalAccessor parsed = f.parse("141968");
  3. System.out.println(parsed.get(ChronoField.YEAR));
  4. System.out.println(parsed.get(ChronoField.DAY_OF_MONTH));

(注意使用“y”,而不是“Y”进行解析)

猜你在找的Java相关文章