-1

我有两次都是字符串格式:

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 和 tTwo 输出我

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

但是,如果两个时间都是相同的上午或下午,它会起作用我的意思是让我们说

tOne = "1:06 PM"
tTwo = "1:15 PM"

运行它成功输出“9”的比较代码

4

1 回答 1

1

您对上午和下午时间的理解似乎是错误的。

时间并没有相差7分钟,第一次是午夜刚过,第二次是中午65分钟后。

在此处输入图像描述

如果您按照 MartinR 的建议修复代码,则正确的差异将是 12 小时 7 分钟。

于 2016-07-25T13:01:20.067 回答