4
私は指定された日付の最初の曜日を返すDate
拡張を書いています(最初の日として月曜日が数えます)。しかし、それは早すぎる1月曜日を返すことを続けます。ここに私のコードは次のとおりです。週の最初の曜日日付の延長
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
をプリントアウトします。
誰かが私のコードが1週間早すぎる日付を返す理由を理解できますか?