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。
值类型 | Codable 格式 |
---|---|
CalendarTime |
hh:mm:ss |
CalendarDate |
YYYY-MM-DD |
CalendarDateTime |
YYYY-MM-DDThh:mm:ss |