计算两个时间字符串之间的差异" 07:35 AM"和" 09:35 PM"几小时

时间:2017-02-03 05:11:46

标签: ios swift date

Click here to see the image我正在按照标题上的两个按钮进行操作我有两次上午/下午。 我已经尝试了很多方法来减去这两个按钮之间的时间但没有成功。 请建议我正确的方法,如何减去IN时间和OUT时间,并在几小时内得到总时间。

2 个答案:

答案 0 :(得分:3)

您可以使用Calendar方法dateComponents来计算两个日期之间的小时数。您可以使用DateFormatter从字符串中获取日期:

let start = "09:35 PM"
let end = "09:36 AM"

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "hh:mm a"

if let startDate = dateFormatter.date(from: start),
    let endDate = dateFormatter.date(from: end) {
    let hours = Calendar.current.dateComponents([.hour], from: startDate, to: endDate < startDate ? Calendar.current.date(byAdding: .day, value: 1, to: endDate) ?? endDate : endDate).hour ?? 0
    print(hours)  // 12
}

答案 1 :(得分:-1)

将两个时间转换为Date对象,然后使用下面的语句。

let interval = laterDate.timeIntervalSinceDate(earlierDate)

希望这会对你有帮助......