UIKit - 日历组件 return 负年份的绝对值
UIKit - Calendar components return absolute value for a negative year
我在从 Date
中提取 year
时遇到问题。在我使用年份为负数的日期之前,一切正常。然后 UIKit 的 Calendar.componten(:from:)
returns 取而代之的是绝对值,甚至相差 1。这是一个例子:
import UIKit
let calendar = Calendar.current
let date = Date(timeIntervalSince1970: -90000000000)
print(date) // -0882-01-14 08:00:00 +0000
print(calendar.component(.year, from: date)) // 883
知道为什么会发生这种情况以及如何在不手动尝试计算年份符号的情况下正确获取日期吗?
谢谢!
负数年份应显示为 B.S 9000 而不是“- 9000”。在 Swift 中也有纪元实例 属性。您可以创建日历并使用值例如:
var newCalendar = Calendar(identifier: .gregorian)
newCalendar.timeZone = newCalendarTimeZone
let newCalendarEra = newCalendar.ordinality(of: .day, in: .era, for: now)
我在从 Date
中提取 year
时遇到问题。在我使用年份为负数的日期之前,一切正常。然后 UIKit 的 Calendar.componten(:from:)
returns 取而代之的是绝对值,甚至相差 1。这是一个例子:
import UIKit
let calendar = Calendar.current
let date = Date(timeIntervalSince1970: -90000000000)
print(date) // -0882-01-14 08:00:00 +0000
print(calendar.component(.year, from: date)) // 883
知道为什么会发生这种情况以及如何在不手动尝试计算年份符号的情况下正确获取日期吗?
谢谢!
负数年份应显示为 B.S 9000 而不是“- 9000”。在 Swift 中也有纪元实例 属性。您可以创建日历并使用值例如:
var newCalendar = Calendar(identifier: .gregorian)
newCalendar.timeZone = newCalendarTimeZone
let newCalendarEra = newCalendar.ordinality(of: .day, in: .era, for: now)