Использование NSTimeInterval после использования dateFromString

Я работаю быстро, и у меня проблемы с NSDateFormatter и NSTimeInterval.

Что я пытаюсь сделать, так это сохранить строковое представление даты, а затем преобразовать его обратно в объект NSDate, а затем найти временной интервал между этой датой и текущим временем. Это дает мне действительно странные ответы, например, неправильный временной интервал. Сами даты верны, когда я распечатываю их раньше, а методы временного интервала работают, когда я использую их для обычных дат, поэтому я подозреваю, что проблема заключается в том, как я конвертирую даты в строки, а затем обратно. Ниже приведен некоторый код:

сохранение даты:

       var date = NSDate()
       var dateformatter = NSDateFormatter()
       dateformatter.dateStyle = .ShortStyle
       dateformatter.timeStyle = .ShortStyle

       newContact.lastCallDate = dateformatter.stringFromDate(date)

получение даты и вычисление временного интервала:

    let dateformatter = NSDateFormatter()
    dateformatter.dateStyle = .ShortStyle
    dateformatter.timeStyle = .ShortStyle
    let date2 = dateformatter.dateFromString(newContact.lastCallDate)
    println(date2)

    let last = date2?.timeIntervalSince1970

    let current = NSDate().timeIntervalSince1970

    let timeElapsed = current - last!

person MID    schedule 27.04.2015    source источник
comment
Пожалуйста, покажите свои значения для исходной даты, преобразованной строки, преобразованной даты и временного интервала.   -  person Martin R    schedule 27.04.2015


Ответы (1)


Этот метод экономит всего несколько минут. Мое предложение - сохранить его как временной интервал

var interval = NSDate().timeIntervalSince1970

А затем загрузите его, добавив это время к дате 1970 года, как это

var date = NSDate(timeIntervalSince1970: interval)
person Stefan Salatic    schedule 27.04.2015