在iOS中找到两个日期的差异

时间:2019-03-06 04:39:51

标签: ios swift nsdateformatter nsdatecomponents nsdatecomponentsformatter

我不确定自己在做什么错,我需要找出两个日期之间的差异并从中提取秒,这是我的代码。我没有得到正确的秒数。相差秒数。

  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)
}

3 个答案:

答案 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秒

相关问题