NSDateComponents не возвращает дату

Я пытаюсь получить данные из двух переменных: hours = "08" и minutes = 30. Я делаю это следующим образом:

let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)
let components = NSDateComponents()
components.hour = hours.toInt()!
components.minute = minutes.toInt()!
let neededDate = components.date

Но neededDate равно нулю. Может я что-то не так делаю?


person Nikita Zernov    schedule 11.05.2015    source источник


Ответы (3)


Если вы хотите использовать NSDateComponents в этом направлении, вы должны установить календарь.

let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)!
let components = NSDateComponents()

components.calendar = calendar // Add this line

components.hour = hours.toInt()!
components.minute = minutes.toInt()!
let neededDate = components.date
person Matthias Bauch    schedule 11.05.2015

Вы получаете дату из календаря с компонентами:

let neededDate = calendar.dateFromComponents(components)
person Josh Gafni    schedule 11.05.2015

Вам нужно изменить способ получения значения neededDate. Теперь вы делаете это таким образом let neededDate = components.date, где это nil, потому что components.date никогда не присваивается никакого значения. Итак, код, который вам нужен, приведен ниже.

let date = calendar.dateFromComponents(components)!

Надеюсь это поможет!

person Vivek Molkar    schedule 11.05.2015