我想解析一个只包含日期和月份信息的日期,而不包含年份。结果日期应设置为当前年份。
例如,输入将是类似于“11.11月份”的内容。
我的想法是使用这样的东西:
DateTimeFormatter.ofPattern("EEEE dd. MMMM");但是在结果日期中,年份被设置为1970,这是有意义的。
有没有办法在DateTimeFormatter中将省略的年份设置为某个值
发布于 2018-11-20 00:02:47
解析为MonthDay并添加年份。根据需要更改Locale。
解析输入字符串。
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号,因为29/02/2018不是一个有效的日期。
https://stackoverflow.com/questions/53378414
复制相似问题