我不确定自己在做什么错,我需要找出两个日期之间的差异并从中提取秒,这是我的代码。我没有得到正确的秒数。相差秒数。
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)
}
答案 0 :(得分:2)
interval
是您想要的答案。那是两个日期之间的总秒数。
您的seconds
值仅在您要计算小时,分钟和秒数或总秒数中的分钟和秒数时才有用。
答案 1 :(得分:1)
您还可以使用默认日期成分,并根据这些成分比较日期,并获得年,月,日等的差异
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)")
答案 2 :(得分:0)
使用以下代码获取两个日期之间的时差,按下按钮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秒