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)
codeest 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
montrer votre code. –
édité @LeoDabus –
la date que vous utilisez comme entrée –