Я форматирую метку времени из базы данных, которая разбивает время на годы, месяцы, дни, часы и минуты. Я использую другой форматер даты, который работает, где он просто разбивает время на точное время, которое составляет всего лишь часы и минуты. Просто попытка обратиться за помощью, чтобы понять, почему это не так, подробный форматировщик даты не работает
Подробный форматер
extension Date {
func getElapsedInterval() -> String {
let interval = Calendar.current.dateComponents([.year, .month, .day], from: self, to: Date())
if let year = interval.year, year > 0 {
return year == 1 ? "\(year)" + " " + "year" :
"\(year)" + " " + "years"
} else if let month = interval.month, month > 0 {
return month == 1 ? "\(month)" + " " + "month" :
"\(month)" + " " + "months"
} else if let day = interval.day, day > 0 {
return day == 1 ? "\(day)" + " " + "day" :
"\(day)" + " " + "days"
} else if let hour = interval.hour, hour > 0 {h
return hour == 1 ? "\(hour)" + " " + "hour" :
"\(hour)" + " " + "hours"
} else if let minute = interval.minute, minute > 0 {
return minute == 1 ? "\(minute)" + " " + "minute" :
"\(minute)" + " " + "minutes"
}
return "a moment ago"
}
}
Форматер рабочей даты
if let seconds = group?.timestamp {
let timestampDate = NSDate(timeIntervalSince1970: TimeInterval(seconds))
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "h:mm a"
self.messageTime.text = dateFormatter.string(from: timestampDate as Date)
}
Не работает правильно Форматер даты
if let seconds = group?.timestamp?.doubleValue {
let timestampDate = Date(timeIntervalSince1970: seconds)
self.messageTime.text = timestampDate.getElapsedInterval()
}
Не работающий форматер даты, который использует подробный форматер даты, просто продолжает печатать на этикетке «мгновение назад», хотя я тестирую те же данные.