Avatar ·

如何在 Swift 中给 NSDate 添加 1 天?DateComponents 的问题

大家好!我是一名初学 iOS 开发的新手,使用 Swift 编程。我遇到了一个看似简单的任务:获取当前日期,加上整整 1 天,然后得到新日期。但就是不行! 这是我的代码: ```swift let currentDate = NSDate() let tomorrow = currentDate.addingTimeInterval(60 * 60 * 24) // 24 小时换算成秒 print(tomorrow) ``` 问题在于,在夏令时/冬令时切换时,24 小时并不总是正好 1 天。例如,春季一天可能只有 23 小时,而秋季则有 25 小时。因此,我得到的时间不正确。此外,如果我想添加 1 个月或 1 年,这种方法根本行不通。 我知道在 Objective-C 中,使用 `NSDateComponents` 和 `NSCalendar` 来处理,但在 Swift 中,我对新的 API 感到困惑。我尝试这样写: ```swift let calendar = Calendar.current var components = DateComponents() components.day = 1 let tomorrow = calendar.date(byAdding: components, to: currentDate as Date) ``` 但 `currentDate as Date` 这