4
的第一天,我已经写了一个Date
扩展返回一周的第一天给定日期(星期一计数为第一天)。但是,它在一个星期一过早返回。这里是我的代码:周日期延长
extension Date {
func startOfWeek() -> Date {
var cal = Calendar.current
var component = cal.dateComponents([.yearForWeekOfYear, .weekOfYear], from: self)
cal.firstWeekday = 2
return cal.date(from: component)!
}
}
所以,当我给它在以下日期:
let sampleDate = "2017-06-15 02:50:09 +0000"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
if let date = formatter.date(from: sampleDate) {
print(date.startOfWeek())
}
}
2017-06-05 07:00:00 +0000
被打印出来。
任何人可以帮助我了解为什么我的代码返回之日起一周太早了?