2016-01-19 5 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

спасибо, что вы отлично работали –

 Смежные вопросы

  • Нет связанных вопросов^_^