【问题标题】:Find difference in two dates in iOS在 iOS 中查找两个日期的差异
【发布时间】:2019-07-27 16:19:51
【问题描述】:

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

  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


【解决方案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】:

    使用以下代码获取两个日期之间的差异,按下按钮 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 秒

    【讨论】:

      【解决方案3】:

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

      您的seconds 值仅在您想要计算小时数、分钟数和秒数或从总秒数计算分钟和秒数时才有用。

      【讨论】:

      • 感谢分享,但间隔仍然没有给出准确的秒值。如果上一个日期和当前日期之间有 10 - 15 秒,则存在差异。我也使用过 NSCalendar 仍然没有给出准确的结果。
      • 您需要用更具体的细节更新您的问题。显示正在使用的确切值以及您的实际和预期结果。
      • 我需要在两次按钮单击之间获得秒数,因此单击一个按钮,我将日期检索为 captureStartDateTime,在第二个按钮单击我检索当前日期和时间并尝试查找间隔秒数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-11
      相关资源
      最近更新 更多