关闭。这个问题需要细节或清晰。它目前不接受答案。**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
27天前关门了。改进这个问题所以我在解析json,有时我收到的包含日期的字符串已经满了(dd-mm-yyyy),有时我只收到yyyy,但我似乎无法将其转换为日期,所以如果有人能帮忙的话
zyfwsgd61#
根据您的业务需求,您可以使用 DateTimeFormatterBuilder#parseDefaulting e、 g.在以下代码中,我已将月份和月份的日期默认为今天的日期:
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-uuuu 以及 uuuu .
[dd-MM-uuuu][uuuu]
dd-MM-uuuu
uuuu
1条答案
按热度按时间zyfwsgd61#
根据您的业务需求,您可以使用
DateTimeFormatterBuilder#parseDefaulting
e、 g.在以下代码中,我已将月份和月份的日期默认为今天的日期:输出:
注:图案,
[dd-MM-uuuu][uuuu]
有两种可选模式,dd-MM-uuuu
以及uuuu
.