在 Swift Foundation Measurements 框架中使用 Years 单位间隔

Using Years unit interval in Swift Foundation Measurements framework

如何使用 Foundation 的 Measurements() 显示以年(或年 + 月)为单位的日期间隔?我已经让它显示间隔,但我发现它的最大单位是小时......它对我无效(以漂亮的本地化显示 87600 小时,间隔 10 年)

如何解决这个问题?

我的代码:

// MODEL part
var yearsLived: Measurement<UnitDuration>? {
    if let hours = birthDate?.getInterval(toDate: deathDate, component: .hour) {
        let hours = Measurement(value: Double(hours), unit: UnitDuration.hours)
        return hours
    }
    return nil
}

// VC PART:
if let yearsLived = person?.yearsLived {
    let formatter = MeasurementFormatter()
    formatter.unitStyle = .long
    formatter.unitOptions = [.naturalScale]

    yearsLivedLabel.text = formatter.string(from: yearsLived)
}

how can I display date iterval in years (or years + months) using Foundation’s Measurements

你不知道。您使用 DateComponentsFormatter.