Comment puis-je convertir cette chaîne "2016-04-14T10:44:00+0000"
en un NSDate
et ne conserver que l'année, le mois, le jour, l'heure?
Le T
milieu jette vraiment ce à quoi je suis habitué lorsque je travaille avec des dates.
swift
nsdate
nsdateformatter
asheyla
la source
la source
Réponses:
Convertir la chaîne ISO8601 en date
Obtenez les composants de date pour l'année, le mois, le jour et l'heure à partir de la date
Enfin, créez un nouvel
Date
objet et dépouillez les minutes et les secondesConsidérez également le formateur pratique
ISO8601DateFormatter
introduit dans iOS 10 / macOS 12:la source
.hour
Essayez le format de date suivant.
J'espère que ça aide..
Swift 4.1:
la source
Dans Swift 4.1, vous pouvez faire:
la source
Swift 3.0 à 4.2
la source
Salut, vous avez un format T séparé, puis convertissez comme vous le souhaitez
la source
Juste votre passage
dateformate
et votre date alors vous obtenezYear,month,day,hour
. Informaitons supplémentairesObtenir l'année
Obtenir le mois
Get Day
Obtenir l'heure
la source
rendre la fonction globale
Fonction appelée et y passer la valeur
et voici la sortie
la source
Dans swift4,
// sortie: - 30 mars 2019 17h30
la source
juste Étape 1> obtenir la valeur String de JSON ou dataSource
Étape 2> créez une variable locale et affectez-la.
Étape 3> Créez une instance de DateFormatter.
étape 4> appelez dateFormat à partir de dateFormatter et fournissez le type de données de date enregistré.
étape 5> Attribuez la variable locale à cette variable à convertir.
Étape 6> Fournissez votre date requise Formatez par le code suivant.
Étape 6> Attribuez-le à l'étiquette / au texte
Code:
la source
Swift 5. Pour voir SI UNE DATE EST PASSÉE:
la source
Je devenais fou avec ce format aussi.
Voir la solution ci-dessous.
Votre String qui vient de votre dos ou d'une autre source:
Identifiez le format de la date
Maintenant que vous avez la date comme Date (), vous pouvez changer le format de votre choix en utilisant le formatDate.string
Production:
la source
Veuillez utiliser une bibliothèque d'analyse ISO8601 pour ce faire. Il y a trop de façons de coder la chaîne. Ne vous fiez pas à un format spécifique et ne comptez pas sur le serveur qui envoie toujours le même. Les problèmes commencent avec le «Z» à la fin et cela s'étendra à toutes les variétés de la norme. Une bibliothèque d'analyse gérera tous les cas et fournira toujours une conversion sûre - alors qu'une chaîne de mise en forme fixe est susceptible d'échouer à l'avenir.
Vous pouvez utiliser l'une de ces bibliothèques. Ils sont également disponibles sur CococaPods:
https://github.com/boredzo/iso-8601-date-formatter/
https://github.com/malcommac/SwiftDate
Jetez un œil aux implémentations. Ils font tous les deux plusieurs centaines de lignes - pour une bonne raison.
En ce qui concerne la question: vous pouvez extraire les composants de date de la date en utilisant NSDateComponents. L'exemple sur le site Web couvre exactement votre cas.
https://developer.apple.com/documentation/foundation/nscalendar/1414841-components?language=objc
Veuillez noter que la conversion de votre date prendra en compte le fuseau horaire. Vous souhaiterez peut-être définir explicitement les paramètres régionaux de NSCalendar.
la source
Utilisez simplement SwifterSwift.
la source