我有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分钟的小时和分钟?
最佳答案
推荐的任何日期数学运算方法是Calendar
和DateComponents
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/