Swift的Calendar.enumerateDates在二月份开始时给出错误的结果

使用Swift的Calendar.enumerateDates时,我遇到了非常奇怪的结果。

它按预期工作,除非从2月份的日期开始。

请考虑以下代码:

let dateComponents = DateComponents(year: 2017, month: 2, day: 2) var testDate = Calendar.current.date(from: dateComponents) var firstOfMonth = DateComponents(day: 1) Calendar.current.enumerateDates(startingAfter: testDate!, matching: firstOfMonth, matchingPolicy: .strict, direction: .forward) { (matchedDate, match, stop) in let wrongResult = matchedDate! stop = true } 

在上面的代码中,我希望wrongResult的结果是2017年3月1日,但我得到2020年2月1日……

我做错了什么或者我发现了一个错误?