gpt4 book ai didi

java - 如果我提供可选的月份和日期,如何将字符串转换为有效的日期格式

转载 作者:行者123 更新时间:2023-12-03 23:33:31 25 4
gpt4 key购买 nike

我想将我的字符串转换为有效的日期格式,即使月份和日期是可选的

例如,我有如下字符串

String date1 = "20-12-2021"
String date2 = "12-2021" i.e without day
String date3 = "2021" i.e without day & month
String date4 = "21" i.e without day, month & just last two digits of the year

我想将以上所有字符串格式转换为有效日期,格式如下,'yyyy-mm-dd',

For date1, Date should be "2021-12-20" 
For date2, Date should be "2021-12-01"
For date3, Date should be "2021-01-01"
For date4, Date should be "2021-01-01"

你能帮我解决这个问题吗?任何信息都会非常有帮助。我无法定义为解析器格式化的单个字符串,因为字符串格式在我的场景中是不可预测的。

最佳答案

您可以使用 DateTimeFormatterBuilder具有多种模式和缺失部分的默认值(月和日):

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendPattern("[dd-MM-uuuu]")
.appendPattern("[MM-uuuu]")
.appendPattern("[uuuu]")
.appendPattern("[uu]")
.parseDefaulting(ChronoField.MONTH_OF_YEAR, 1)
.parseDefaulting(ChronoField.DAY_OF_MONTH, 1)
.toFormatter();

输出

2021-12-20
2021-12-01
2021-01-01
2021-01-01

关于java - 如果我提供可选的月份和日期,如何将字符串转换为有效的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66010598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com