2016-01-19 1 views
0

J'utilise une fonction timeIntervalSinceNow pour déterminer la différence entre une certaine heure et l'heure actuelle. J'ai utilisé le "ZeroFormattingBehaviour" à .DropAll pour se débarrasser des 0 dans la date. Cependant, je veux faire en sorte que la différence ne comprend pas la différence de secondes. Par exemple, si la différence est de 2 jours, 5 heures, 25min et 40 sec, je veux que cela ne montre que 2 jours, 5h, 25min. (par exemple en excluant la partie secondes) Y a-t-il un moyen de le faire?Swift - timeIntervalSinceNow Je veux seulement afficher les minutes (sauf la partie des secondes)

code

est la suivante:

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

Merci

+0

montrer votre code. –

+0

édité @LeoDabus –

+0

la date que vous utilisez comme entrée –

Répondre

0

Indiquez les unités que vous souhaitez afficher

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

merci beaucoup a travaillé parfaitement –