作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将我的字符串转换为有效的日期格式,即使月份和日期是可选的
例如,我有如下字符串
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/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!