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

问题描述 投票:0回答:2

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

val period = Period.between(date1, date2)

返回的是这样的字符串“PyYxMzD” 其中y是年,x是月,z是日。我想将这些值中的每一个存储在单独的变量中。

起初我尝试使用 .split() 但我无法找到解释所有字母的方法。

还值得一提的是,如果两个日期之间的时间段小于一年,例如,返回的字符串将是“PxMzD”。这个月也一样。那么,如何在考虑返回字符串的所有可能格式的同时提取此信息?

kotlin date split period
2个回答
2
投票

A

Period
有可以访问的字段:

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}")
}

输出:

years: 0, months: 2, days: 2

0
投票

Period
类有方法
get
https://docs.oracle.com/javase/8/docs/api/java/time/Period.html#get-java.time.temporal.TemporalUnit-)它可以给你想要的信息:

val period = Period.between(date1, date2)
val years = period.get(ChronoUnit.YEARS)
val months = period.get(ChronoUnit.MONTHS)
val days = period.get(ChronoUnit.DAYS)
© www.soinside.com 2019 - 2024. All rights reserved.