我想解析仅包含日期和月份信息的日期,而不包含年份。结果日期应设置为当前年份。
例如,输入内容类似于“ 11月11日”。
我的想法是使用这样的东西:
DateTimeFormatter.ofPattern("EEEE dd. MMMM");
但是在结果日期中,年份设置为1970,这很有意义。
是否可以在DateTimeFormatter
内将省略的年份设置为某个值?
答案 0 :(得分:8)
解析输入字符串。
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年(不是a年),那么它将被推回到28日,因为29/02/2018是无效日期。