DateComponents
类提供了一种灵活的方式,用于表示和操作日期与时间的各个组成部分,例如年、月、日、小时、分钟、秒等。该类基于 Swift 的 DateComponents
实现,并与系统当前日历协同工作。
构造函数可接收一个可选的 options
对象,用于初始化各个日期字段:
DateComponents.fromDate(date: Date): DateComponents
从给定的 Date
对象中提取所有可用的日期组成部分(年、月、日、小时、分钟、秒、纳秒),返回一个新的 DateComponents
实例。
date
(Date
):需要提取信息的日期对象。DateComponents
实例。DateComponents.forHourly(date: Date): DateComponents
为“每小时重复”的需求创建一个日期组件,仅设置 minute
字段。
minute
DateComponents.forDaily(date: Date): DateComponents
为“每天重复”的需求创建一个日期组件,设置 hour
和 minute
字段。
hour
, minute
DateComponents.forWeekly(date: Date): DateComponents
为“每周重复”的需求创建一个日期组件,设置 weekday
、hour
、minute
字段。
weekday
, hour
, minute
DateComponents.forMonthly(date: Date): DateComponents
为“每月重复”的需求创建一个日期组件,设置 day
、hour
、minute
字段。
day
, hour
, minute
date?: Date | null
使用当前组件通过系统日历计算得出的 Date
对象。如果无效则为 null
。
isValidDate: boolean
当前组件组合是否构成一个有效日期。
以下所有字段均为可选,可设为 number
或 null
:
era
:纪元
year
:年份
yearForWeekOfYear
:与周数关联的年份
quarter
:季度(1 到 4)
month
:月份(1 到 12)
isLeapMonth
:是否为闰月(布尔值)
weekOfMonth
:当前月份中的第几周
weekOfYear
:当前年份中的第几周
weekday
:星期几(1 = 星期日,2 = 星期一,…,7 = 星期六)
weekdayOrdinal
:某星期几在当前月中第几次出现
day
:每月中的某一天
hour
:小时(0 到 23)
minute
:分钟(0 到 59)
second
:秒(0 到 59)
nanosecond
:纳秒(0 到 999,999,999)
dayOfYear
:一年中的第几天(1 到 366)
date
和 isValidDate
的计算依赖系统当前的日历设置。forHourly
、forDaily
、forWeekly
、forMonthly
方法快速创建周期性日期组件,适用于通知调度、事件提醒等场景。