NSDateComponents weekOfYear返回错误的日期

时间:2015-11-17 21:31:53

标签: swift nsdate nsdatecomponents

所以我正在制作一个基本的周选择器,你可以选择一周的数字和年份,并从周开始点获得相应的日期。

基本测试场景

let calendar = NSCalendar.currentCalendar()
let components = NSDateComponents()
components.year = 2015
components.weekOfYear = 15
print(calendar.dateFromComponents(components)!)

你可以看到,我把想要的年份设置为2015年,将通缉周设置为15,但我得到的结果是:“2014-12-31 23:00:00 +0000”

......那真的让我感到茫然。无论我选择哪个星期和一年,它总会在12月份关闭。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

weekOfYearyearForWeekOfYear

配合使用
let calendar = NSCalendar.currentCalendar()
let components = NSDateComponents()

components.yearForWeekOfYear = 2015
components.weekOfYear = 15

print(calendar.dateFromComponents(components)!)
// 2015-04-05 22:00:00 +0000

更新 Swift 3 及更高版本:

let calendar = Calendar.current
var components = DateComponents()

components.yearForWeekOfYear = 2015
components.weekOfYear = 15

print(calendar.date(from: components)!)