2016-01-19 57 views
0

我使用timeIntervalSinceNow函數來確定一定時間和當前時間之間的差異。我已經使用了「ZeroFormattingBehaviour」來.DropAll去除日期中的任何0。不過,我想這樣做,差異不包括秒差異。例如,如果差異是2天,5小時,25分和40秒,我希望它只顯示2天,5小時,25分鐘。 (例如不包括秒部分)有沒有辦法做到這一點?Swift - timeIntervalSinceNow只想顯示分鐘(不包括秒部分)

代碼如下:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    let managedContext = appDelegate.managedObjectContext 
    let fetchRequest = NSFetchRequest(entityName: "Values") 
    let sortDescriptor = NSSortDescriptor(key: "time", ascending: true) 
    fetchRequest.sortDescriptors = [sortDescriptor] 

    do { 
     let results = try managedContext.executeFetchRequest(fetchRequest) 
      Values = results as! [NSManagedObject] 

     for result in results as! [NSManagedObject] { 

      times = result.valueForKey("time") as! String 

      let timeFormatter = NSDateFormatter() 
      timeFormatter.locale = NSLocale.currentLocale() 
      timeFormatter.dateFormat = "HH:mm dd/MM/yy" 
      let otherTime = timeFormatter.dateFromString(times) 

      let dateComponentsFormatter = NSDateComponentsFormatter() 
      dateComponentsFormatter.unitsStyle = NSDateComponentsFormatterUnitsStyle.Abbreviated 
      dateComponentsFormatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehavior.DropAll 
      let difference = otherTime?.timeIntervalSinceNow 
      let diffAbs = abs(difference!) 
      let stringDiff = dateComponentsFormatter.stringFromTimeInterval(diffAbs) 
      // "\n" skips a line in the text 
      TimerLabel.text = stringDiff! 

     } 

    } catch let error as NSError { 
     TimerLabel.text = "There seems to be an error. Please try again later" 
     print("Could not fetch \(error), \(error.userInfo)") 
    } 

感謝

+0

顯示你的代碼的單位。 –

+0

編輯@LeoDabus –

+0

您用作輸入的日期 –

回答

0

指定要顯示

dateComponentsFormatter.allowedUnits = [.Day, .Hour, .Minute] 
+0

非常感謝您的完美工作 –