【发布时间】:2017-04-17 03:13:31
【问题描述】:
我编写了一个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 被打印出来。
谁能帮我理解为什么我的代码提前一周返回日期?
【问题讨论】:
标签: swift date-formatting