一尘不染

NSDateComponents weekOfYear返回错误的日期

swift

所以我正在做一个基本的星期选择器,您可以在其中选择星期数和年份,并从星期开始点获取相应的日期。

基本测试方案

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月关闭。

预先感谢您的帮助。


阅读 289

收藏
2020-07-07

共1个答案

一尘不染

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

更新 斯威夫特3 及更高版本:

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

components.yearForWeekOfYear = 2015
components.weekOfYear = 15

print(calendar.date(from: components)!)
2020-07-07