有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中解析缺少年份信息的日期

我想解析一个只包含日期和月份信息的日期,而不包含年份。结果日期应设置为当前年份

例如,输入类似于“11.11”

我的想法是使用这样的东西:

DateTimeFormatter.ofPattern("EEEE dd. MMMM");

但最终的日期是1970年,这是有道理的

是否有办法将省略的年份设置为DateTimeFormatter内的某个值


共 (1) 个答案

  1. # 1 楼答案

    解析为^{}并添加年份。根据需要更改^{}

    解析输入字符串

    final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd. MMMM", Locale.UK);
    final MonthDay monthDay = MonthDay.parse("11. November", formatter) ;
    

    应用所需的年份

    final int currentYear = LocalDate.now().getYear();
    final LocalDate date = monthDay.atYear(currentYear);
    

    值得注意的是,如果你有2月29日这样的日期,并且你加上2018年(不是闰年),那么它将被推回到28日,因为2018年2月29日不是一个有效日期