DateIntervalFormatter: cadena de formato “m:ss”
Me gustaría obtener una cadena con el formato “m:ss” a partir de dos fechas.
Por ejemplo: “0:27” para una diferencia de 27 segundos y “1:30” para una diferencia de 90 segundos entre fechas.
Aquí está el código que estoy usando:
import Foundation
let formatter = DateIntervalFormatter()
formatter.dateStyle = .none
formatter.timeStyle = .none
formatter.dateTemplate = "m:ss"
let startDate = Date()
let endDate = Date(timeInterval: 1, since: startDate)
let outputString = formatter.string(from: startDate, to: endDate)
print(outputString) //16:12 – 16:13 ???
// Esto es correcto, pero en realidad no calcula el intervalo.
Pero solo obtengo dos fechas impresas con un guión. ¿Cómo puedo hacer que el DateIntervalFormatter calcule la diferencia como yo quiero?
El código es casi una muestra 1:1 de la documentación de Apple, pero con la plantilla de fecha personalizada: https://developer.apple.com/documentation/foundation/dateintervalformatter
davy.ai
Necesitas usar el método
string(from:to:)
delDateIntervalFormatter
para calcular la diferencia entre dos fechas. La propiedaddateTemplate
se utiliza para dar formato al texto de salida.Aquí está el código actualizado: