Avatar ·

Cómo analizar y crear fecha/hora con segundos fraccionarios y UTC en formato ISO 8601 / RFC 3339 en Swift?

¡Hola a todos! Soy nuevo en Swift y me encontré con un problema al trabajar con fechas. Necesito enviar al servidor y recibir del servidor marcas de tiempo en formato ISO 8601 con segundos fraccionarios y zona horaria UTC. Un ejemplo de dicha cadena: "2024-03-15T14:30:45.123Z". El problema es que el `DateFormatter` estándar en Swift no siempre maneja correctamente los segundos fraccionarios. Probé este código: ```swift let dateString = "2024-03-15T14:30:45.123Z" let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" if let date = formatter.date(from: dateString) { print("Date: \(date)") } else { print("Failed to parse") } ``` Pero esto funciona de manera inestable. A veces el parsing funciona, a veces no. Especialmente si la cantidad de dígitos después del punto cambia (por ejemplo, ".12" o ".123456"). También probé usar `ISO8601DateFormatter`, pero allí también surgen complicaciones con los segundos fraccionarios. Necesito: 1) Analizar de manera confiable cadenas con segundos fraccionarios de diferente precisión (de 1 a 6 dígitos). 2) Crear