如何从 period. Between() 返回的字符串中提取信息?(科特林)

ber*_*rry 3 split date period kotlin

例如,我在函数中将有两个日期。

val period = Period.between(date1, date2)
Run Code Online (Sandbox Code Playgroud)

返回的是String这样的,"P*y*Y*x*M*z*D"其中y是年,x是月,z是日。我想将每个值存储在单独的变量中。

起初我尝试使用.split(),但找不到一种方法来解释所有字母。

还值得一提的是,如果两个日期之间的时间间隔小于一年,则返回的字符串将为"P*x*M*z*D". 这个月也是如此。那么,如何在考虑返回的所有可能格式的同时提取这些信息呢String

deH*_*aar 7

APeriod具有可访问的字段:

fun main() {
    val date1 = LocalDate.of(2023, 1, 3)
    val date2 = LocalDate.of(2023, 3, 5)
    val period = Period.between(date1, date2)
    println("years: ${period.years}, months: ${period.months}, days: ${period.days}")
}
Run Code Online (Sandbox Code Playgroud)

输出:

fun main() {
    val date1 = LocalDate.of(2023, 1, 3)
    val date2 = LocalDate.of(2023, 3, 5)
    val period = Period.between(date1, date2)
    println("years: ${period.years}, months: ${period.months}, days: ${period.days}")
}
Run Code Online (Sandbox Code Playgroud)