如何在 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` 这