如何解析MM/yy格式的字符串(例如:12/22)来Kotlin日期对象?没有日值的日期对象是否可以存在?我尝试了以下方法:
import java.time.LocalDate
import java.util.Locale
import java.time.format.DateTimeFormatter
import java.time.format.DateTimeFormatterBuilder
fun main() {
var str_date = "06/22"
val df: DateTimeFormatter = DateTimeFormatterBuilder()
.appendPattern("MM/yy")
.toFormatter(Locale.ENGLISH);
println(LocalDate.parse(str_date, df))
}
这会导致下列例外状况:java.time.format.DateTimeParseException: Text '06/22' could not be parsed: Unable to obtain LocalDate from TemporalAccessor: {Year=2022, MonthOfYear=6},ISO of type java.time.format.Parsed
2条答案
按热度按时间um6iljoc1#
Java
LocalDate
需要日、月和年,因此无法解析06/22
。如果您只需要解析月份和年份,则可以使用
YearMonth
nlejzf6q2#
编辑答案,抱歉之前贴错了答案。
如错误所示,
LocalDate
需要有关date
的信息,而'MM/yy'
不完全包括。所以下面有3个答案:
YearMonth
是一个更好的选择来格式化模式。你可以得到一个YearMonth
然后选择一个day
来得到一个LocalDate
1.将默认值
day_of_month
设置为LocalDate
1.得到一个
java.util.Date
,然后得到一个LocalDate