我不确定我做错了什么,我需要找到两个日期之间的差异并从中提取秒数,下面是我的代码。我没有得到正确的秒数。有几秒钟的差异。
public func captureStartTime() {
captureStartDateTime = Date()
}
public func captureEndTime(eventType: String, eventElement: String) {
let difference = Date().timeIntervalSince(captureStartDateTime)
let interval = Int(difference)
let seconds = interval % 60
let secondsDescrp = String(format: "%02d", seconds)
}
interval
是你想要的答案。这是两个日期之间的总秒数。
只有当您想要计算小时数,分钟数和秒数或总秒数的分钟数和秒数时,seconds
值才有用。
您还可以使用默认日期组件,并根据比较您的日期,您可以得到年,月,日等的差异
let dateString1 = "2019-03-07T14:20:20.000Z"
let dateString2 = "2019-03-07T14:20:40.000Z"
//set date formate
let Dateformatter = DateFormatter()
Dateformatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
//convert string to date
let dateold = Dateformatter.date(from: dateString1)!
let datenew = Dateformatter.date(from: dateString2)!
//use default datecomponents with two dates
let calendar1 = Calendar.current
let components = calendar1.dateComponents([.year,.month,.day,.hour,.minute,.second], from: dateold, to: datenew)
let seconds = components.second
print("Seconds: \(seconds)")
使用以下代码来获取两个日期之间的差异,按下按钮1时将当前时间存储在startTime
中,按下按钮2时将当前日期时间存储在endTime
中,请参阅此代码,我希望这对您有所帮助。
var startTime:Date!
var endTime:Date!
@IBAction func buttonStartTime(_ sender: UIButton) {
startTime = Date()
}
@IBAction func buttonEndTime(_ sender: UIButton) {
endTime = Date()
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.second]
formatter.unitsStyle = .full
let difference = formatter.string(from: startTime, to: endTime)!
print(difference)//output "8 seconds"
}
产量
8秒