Сравнение AM и PM (NSDate)
У меня есть два раза в формате String:
timeOne = "12:58 AM"
timeTwo = "1:05 PM"
Я превращаю их в NSDate, как это
func convertTime(tim: String) -> NSDate{
let strDate = tim
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm a"
//converts into NSDate so we can find the time remaining
return (dateFormatter.dateFromString(strDate))!
}
let tOne = convertTime(timeOne)
let tTwo = convertTime(timeTwo)
преобразование одного и двух выходов меня
tOne = 2000-01-01 00:58:00 +0000
tTwo = 2000-01-01 12:05:00 +0000
Я сравниваю два раза, но я хочу, чтобы он возвращал 7 минут, тогда как я получаю "667". Код для сравнения:
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.Minute, fromDate: tOne, toDate: tTwo, options: [])
print(components)
Это распечатывает
667
Однако это работает, если оба раза одинаковы AM или PM. Я имею в виду, что
tOne = "1:06 PM"
tTwo = "1:15 PM"
запустив код сравнения, он успешно выдает "9"
1 ответ
Ваше понимание времени утра и вечера кажется ложным.
Разница не в 7 минутах, первая - сразу после полуночи, вторая - 65 минут после полудня.
Если вы исправите свой код в соответствии с предложением MartinR, правильная разница будет 12 часов и 7 минут.