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

问题描述 投票:0回答:3

我不确定我做错了什么,我需要找到两个日期之间的差异并从中提取秒数,下面是我的代码。我没有得到正确的秒数。有几秒钟的差异。

  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)
}
ios swift nsdateformatter nsdatecomponents nsdatecomponentsformatter
3个回答
2
投票

interval是你想要的答案。这是两个日期之间的总秒数。

只有当您想要计算小时数,分钟数和秒数或总秒数的分钟数和秒数时,seconds值才有用。


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

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秒

© www.soinside.com 2019 - 2024. All rights reserved.