¿Cómo puedo convertir esta cadena "2016-04-14T10:44:00+0000"
en una NSDate
y mantener solo el año, mes, día y hora?
En T
el medio de esto, realmente arroja lo que estoy acostumbrado cuando trabajo con fechas.
swift
nsdate
nsdateformatter
asheyla
fuente
fuente
Respuestas:
Convierta la cadena ISO8601 a la fecha
Obtenga los componentes de fecha para año, mes, día y hora a partir de la fecha
Finalmente crea un nuevo
Date
objeto y tira minutos y segundosConsidere también el formateador de conveniencia
ISO8601DateFormatter
introducido en iOS 10 / macOS 12:fuente
.hour
Pruebe el siguiente formato de fecha.
Espero eso ayude..
Swift 4.1:
fuente
En Swift 4.1 puedes hacer:
fuente
Swift 3.0 - 4.2
fuente
Hola, tiene un formato T separado y luego convierte como desee
fuente
Solo estás pasando tu
dateformate
y tu fecha y luego obtienesYear,month,day,hour
. Información extraObtener año
Obtener mes
Obtener el día
Obtener hora
fuente
hacer una función global
Función llamada y valor de paso en ella
y aquí está la salida
fuente
En swift4,
// salida: - 30 mar 2019 05:30 PM
fuente
solo el paso 1> obtenga el valor de cadena de JSON o dataSource
Paso 2> crea una variable local y asígnela.
Paso 3> crea una instancia de DateFormatter.
paso 4> llama al dateFormat desde dateFormatter y proporciona el tipo de datos de fecha guardado.
paso 5> Asigna la variable Local a esta variable para convertir.
Paso 6> proporcione el formato de fecha requerido con el siguiente código.
Paso 6> Asignarlo a etiqueta / texto
Código:
fuente
Swift 5. Para ver SI HA PASADO UNA FECHA:
fuente
Me estaba volviendo loco con este formato también.
Vea la solución a continuación.
Su cadena que vino de su espalda u otra fuente:
Identifica el formato de fecha
Ahora que tiene la fecha como Fecha (), puede cambiar el formato que desee utilizando formatDate.string
Salida:
fuente
Utilice una biblioteca de análisis ISO8601 para hacer esto. Hay muchas formas de codificar la cadena. No confíe en un formato específico y no confíe en que el servidor envíe siempre lo mismo. Los problemas comienzan con la 'Z' al final y se extenderá a todas las variedades del estándar. Una biblioteca de análisis manejará todos los casos y siempre proporcionará una conversión segura, mientras que es probable que una cadena de formato fija falle en el futuro.
Podrías usar una de estas bibliotecas. También están disponibles en CococaPods:
https://github.com/boredzo/iso-8601-date-formatter/
https://github.com/malcommac/SwiftDate
Echa un vistazo a las implementaciones. Ambos tienen varios cientos de líneas de largo, por una buena razón.
Con respecto a la pregunta: puede extraer los componentes de la fecha de la fecha utilizando NSDateComponents. El ejemplo en el sitio web cubre exactamente su caso.
https://developer.apple.com/documentation/foundation/nscalendar/1414841-components?language=objc
Tenga en cuenta que la conversión de su fecha tendrá en cuenta la zona horaria. Es posible que desee establecer la 'configuración regional' de NSCalendar explícitamente.
fuente
Solo usa SwifterSwift.
fuente