CalendarDate 是为 Swift 构建的日历日期处理库,基于 DateComponents。它提供了值对象,用于表示不直接绑定到特定 UTC 偏移量或时区的日期和时间。 当 处理未来事件时,这非常有用,例如在事件和约会安排应用中。
CalendarDate 提供了以下值类型:
CalendarTime
: 表示一个本地时间,例如 "下午 2:00"。CalendarDate
: 表示一个日历日期,例如生日。CalendarDateTime
: 将 CalendarDate
和 CalendarTime
组合起来,表示一个日期 + 时间。您可以直接初始化一个 CalendarDateTime
值,并在需要向用户显示时将其转换为 Swift 的 Date
。
let meetingDate = CalendarDateTime(year: 2020, month: 4, day: 1, hour: 10, minute: 30)
let meetingTimezone = TimeZone(identifier: "America/New_York")
let date = meetingDate.asDate(timezone: meetingTimezone!)
let formatter = DateFormatter()
formatter.dateStyle = .long
formatter.timeStyle = .long
formatter.timeZone = TimeZone(identifier: "America/New_York") // Or .current
formatter.string(from: date) // -> "April 1, 2020 at 10:30:00 AM EDT"
此库提供的所有值类型都符合 Codable 协议。
值类型 | Codable 格式 |
---|---|
CalendarTime |
hh:mm:ss |
CalendarDate |
CalendarDate |
YYYY-MM-DD |
CalendarDateTime |