Привет, я пытаюсь найти временной интервал между определенной датой и текущим местным временем.
var a = eventDate.timeIntervalSinceNow
println(a)
//1404567.32182503 - output
Когда я пытаюсь это сделать, я получаю вывод, как указано выше. Как я могу изменить это на удобочитаемую дату?
Я хочу рассчитать количество оставшихся дней, часов, минут. Я не хочу Годы, месяцы, Секунды.
ДОЛЖЕН: мне нужен временной интервал между датой события и местным временем. Не время UTC.
Вот полный код:
//eventDate is 2015-09-01 19:39
var date = NSDate();
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYY-MM-dd HH:mm:ss ZZZZ"
dateFormatter.timeZone = NSTimeZone()
var localDateString = dateFormatter.stringFromDate(date)
var localDate: NSDate = dateFormatter.dateFromString(localDateString)!
var components = NSCalendar.currentCalendar().components(.CalendarUnitSecond |
.CalendarUnitMinute | .CalendarUnitHour | .CalendarUnitDay |
.CalendarUnitMonth | .CalendarUnitYear, fromDate: localDate,
toDate: self.eventDate, options: nil)
println("\(components.day) days \(components.hour) hours \(components.minute) minutes")
16 days 5 hours 41 minutes //Origianl output
16 days 0 hours 11 minutes // Expected output
Я думаю, что столкнулся с этой проблемой из-за изменения времени UTC!
dateFormat
неверна. Покажите пример исходной строки даты. По крайней мере, я бы использовалyyyy
, а неYYY
. - person Rob   schedule 16.08.2015self.eventDate
не определен. И почему вы конвертируетеdate
в строку и обратно, используя тот же форматтер? - person Martin R   schedule 16.08.2015println(date)
иprintln(self.eventDate)
. - person Martin R   schedule 16.08.2015