我用來nextDate(after:matching:matchingPolicy:repeatedTimePolicy:direction:)向后搜索日期。
我想搜索前一個月的 23 日,但我跳到了 2022 年到 1995 年。
這是一個錯誤還是我只是錯過了一些日歷方面的東西,使這個結果實際上是正確的?
var calendar: Calendar = .autoupdatingCurrent
calendar.timeZone = TimeZone(identifier: "Europe/Stockholm")!
let date = Date(timeIntervalSince1970: 1666310400.0) // "Oct 21, 2022 at 2:00 AM"
print(date) // "2022-10-21 00:00:00 0000\n"
calendar.nextDate(after: date, // "Sep 23, 1995 at 12:00 AM" ??
matching: DateComponents(day: 23),
matchingPolicy: .previousTimePreservingSmallerComponents,
direction: .backward)
uj5u.com熱心網友回復:
這是完成相同事情的簡單替代方法
var previous = calendar.date(bySetting: .day, value: 23, of: date)!
while previous > date {
previous = calendar.date(byAdding: .month, value: -1, to: previous)!
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/524216.html
標籤:IOS迅速日期
