从日期中提取所有日期组件

Extract all date components from a Date

(我很惊讶我在任何地方都找不到这个问题,听起来很基础。我可能遗漏了什么...)

有没有一种方法可以创建一个与 Date/NSDate 对象(日期、时间、日历、时区)完全匹配的 DateComponents() 对象,而不必指定我们想要的所有组件包括?

具体用例示例:UNCalendarNotificationTrigger init 方法将 DateComponents 作为参数,我们希望将该通知设置为特定的日期和时间,并保存为Date/NSDate 个对象,因此我们需要提取其 dateComponents。

您可以使用 Calendar.dateComponents(in:,from:) 来实现您的目标。这样你只需要提供 TimeZone 就可以从 Date 对象中提取所有 DateComponents

let components = Calendar.current.dateComponents(in: TimeZone.current, from: Date())