swift3 - 快速获得两次之间的时差3

标签 swift3 nstimeinterval

我有2个变量,从datePicker获得2次,我需要将它们之间的差异保存在变量中。

    let timeFormatter = DateFormatter()
    timeFormatter.dateFormat = "HHmm"

    time2 = timeFormatter.date(from: timeFormatter.string(from: datePicker.date))!


我试图从他们两个那里获取timeIntervalSince1970,他们减去它们并得到了毫秒数的差,我将回到小时和分钟,但是我得到了一个很大的数字,它与实际时间不符。

let dateTest = time2.timeIntervalSince1970 - time1.timeIntervalSince1970


然后我尝试使用time2.timeIntervalSince(date:time1),但是结果毫秒数比实际时间要多得多。

如何获得2次之间的正确时差,并以“ 0823”格式显示8小时23分钟的小时和分钟?

最佳答案

推荐的任何日期数学运算方法是CalendarDateComponents

let difference = Calendar.current.dateComponents([.hour, .minute], from: time1, to: time2)
let formattedString = String(format: "%02ld%02ld", difference.hour!, difference.minute!)
print(formattedString)


格式%02ld将填充零添加。

如果您需要标准格式的小时和分钟之间的冒号DateComponentsFormatter()可能是一种更方便的方法

let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute]
print(formatter.string(from: time1, to: time2)!)

关于swift3 - 快速获得两次之间的时差3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47967135/

相关文章:

ios - 如何在 Swift 中扩展特定 UIButton 的点击区域?

iphone - 我应该能够使用 NSTimer 延迟 2 秒。怎么做?

ios - 如何以 24 小时格式获取日期

ios - 如何使用选择器和时间间隔创建 NSDate 计时器

json - 在Swift 3中正确解析JSON

Cocoa 在索引处禁用 tabItem

ios - 将来自 URL 的照片作为导航栏按钮项

ios - 带有 swift 3 和 Alamofire 的 JSON 字符串上的 Unicode 字符

iphone - 如何将 NSTimeInterval 转换为 int?

Swift - timeIntervalSinceNow 只想显示分钟(不包括秒部分)