我想将我的字符串转换为有效的日期格式,即使月份和日期都是可选的
例如,我有以下字符串,如下所示
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句