例如,我在函数中有两个预期的日期。
val period = Period.between(date1, date2)
返回的是这样的字符串“PyYxMzD” 其中y是年,x是月,z是日。我想将这些值中的每一个存储在单独的变量中。
起初我尝试使用 .split() 但我无法找到解释所有字母的方法。
还值得一提的是,如果两个日期之间的时间段小于一年,例如,返回的字符串将是“PxMzD”。这个月也一样。那么,如何在考虑返回字符串的所有可能格式的同时提取此信息?
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
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)