字符串到日期有时完整日期存在有时我在java中只得到年份



我正在解析json,有时我收到的包含日期的字符串已满(dd-mm-yyyy(,有时我只收到yyyy,我似乎无法将其转换为日期,所以如果有人能帮助

根据您的业务需求,您可以使用DateTimeFormatterBuilder#parseDefaulting将月份和日期默认为所需值。例如,在以下代码中,我已将月份和当天默认为今天的值:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.util.Locale;
class Main {
public static void main(String[] args) {
// Test
System.out.println(parseToDate("10-10-2020"));
System.out.println(parseToDate("2020"));
}
static LocalDate parseToDate(String str) {
LocalDate today = LocalDate.now();
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendPattern("[dd-MM-uuuu][uuuu]")
.parseDefaulting(ChronoField.MONTH_OF_YEAR, today.getMonthValue())
.parseDefaulting(ChronoField.DAY_OF_MONTH, today.getDayOfMonth())                                       
.toFormatter(Locale.ENGLISH);
return LocalDate.parse(str, formatter);
}
}

输出:

2020-10-10
2020-12-12

注意:模式[dd-MM-uuuu][uuuu]有两个可选模式dd-MM-uuuuuuuu

相关内容

  • 没有找到相关文章

最新更新