Найти разницу в двух датах в iOS - PullRequest
0 голосов
/ 06 марта 2019

Я не уверен, что я делаю неправильно, мне нужно найти разницу между двумя датами и извлечь из них секунды, ниже мой код.Я не получаю правильные секунды.Разница секунд.

  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 ]

2 голосов
/ 06 марта 2019

interval - это ответ, который вы хотите.Это общее количество секунд между двумя датами.

Ваше значение seconds будет полезным только в том случае, если вы хотите рассчитать количество часов, минут и секунд или количество минут и секунд изобщее количество секунд.

1 голос
/ 07 марта 2019

вы также можете использовать компоненты даты по умолчанию и в соответствии с этим сравнить ваши даты, и вы можете получить разницу в год, месяц, день и т. Д.

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 голосов
/ 06 марта 2019

Используйте следующий код для получения разницы между двумя датами: сохраняйте текущее время в startTime при нажатии кнопки 1 и сохраняйте текущее время в endTime при нажатии кнопки 2, см. Этот код, надеюсь, это вам поможет.

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 секунд

...