Comment Formater Vos Dates Avec DateFormatter De Swift

Les dates et les heures sont une partie essentielle de la programmation. Ils nous aident à suivre les instances de données et nous permettent d'organiser les ensembles de données par ordre chronologique.

Malgré leur importance, le formatage et l'interprétation de la date et de l'heure ne sont pas toujours aussi simples qu'on pourrait l'espérer.

Par exemple, si la date à New York est le 03/05/2022 et qu'il est 15h20, le New-Yorkais moyen dirait que nous sommes le 3 mai 2022 à 15h20 de l'après-midi. Cependant, cette même date et heure se lirait très différemment à quelqu'un à Londres, où il interpréterait cette date comme le 5 mars 2022 et dirait qu'il est 18h20.

Ces différences sont dues à trois facteurs majeurs : le fuseau horaire (heure normale de l'Est par rapport à l'heure d'été britannique) ; format de date (mois/jour/année vs jour/mois/année) ; et différence de type d'horloge (les États-Unis utilisent l'horloge de 12 heures et, bien que Londres puisse utiliser les deux, leurs documents gouvernementaux utilisent généralement l'horloge de 24 heures).

Ce ne sont là que quelques différences de date et d'heure entre deux villes, mais imaginez les différences entre tous les pays du monde (et même les différences au sein des pays).

C'est pourquoi, si vous souhaitez que votre application soit aussi accessible que possible, vous devez disposer d'une logique pour représenter avec précision les dates et les heures dans des formats compris par différents environnements.

Dans cet article, je vais vous montrer comment formater vos dates avec Swift DateFormatter, ainsi qu'avec d'autres bibliothèques existantes. Tout d'abord, commençons par DateFormatter.

Mise en place de notre environnement

Avant de commencer, préparons-nous. Créez une nouvelle application Swift et ouvrez-la dans Xcode.

Ensuite, allez dans votre ContentView.swiftfichier et, en dehors du corps, instanciez de nouveaux objets Dateet .DateFormatter

let date = Date();
let dateFormatter = DateFormatter();

Datenous donnera la date et l'heure actuelles par rapport à notre fuseau horaire actuel. Pour moi, c'est le mercredi 1er juin 2022.

 

dateFormatterest une instance de la DateFormatterclasse qui nous permet d'utiliser diverses fonctions de formatage sur notre date. Ceci est important car nous ne pourrons pas afficher dateune Textvue sans la formater correctement au préalable. Voyons comment nous pouvons le formater dans le bodyde notre fichier ContentView.

​​var body: some View {
        dateFormatter.dateStyle = .short
        return Text(dateFormatter.string(from: date))
            .padding()
}

Le code ci-dessus abrégera la date et la mettra sous forme numérique. Par exemple, la date d'aujourd'hui pour moi (1er juin 2022) deviendra le 01/06/22.

ExécutionDateFormatter

Pour commencer à utiliser DateFormatter, nous devons attribuer le style que nous voulons. La . shortstyle que nous attribuons rend datedans un format numérique ou raccourci. Cela signifie que le mois, le jour et l'année sont représentés par des nombres. Notez également que l'année n'est composée que de deux chiffres au lieu de quatre.

Ensuite, .stringnous permet de convertir dateen un type de chaîne (ce que notre Textvue exige). Il est stylisé selon dateFormatter, qui est . shortdans notre cas.

Et si nous voulions afficher la date avec le mois sous forme de chaîne abrégée, le jour sous forme de nombre et l'année sous forme de quatre chiffres complets ? C'est facile! Nous utiliserions. mediumà la place de . short.

Et si nous voulions afficher la date avec le nom complet du mois, un jour numérique et l'année complète ?

Vous l'avez deviné, nous utiliserions . long.

Nous pouvons aller encore plus loin en utilisant . full, qui nous donne le jour de la semaine, le nom complet du mois, un numéro pour le jour et l'année complète. Vous pouvez tous les voir ci-dessous.

Exemples de style DateFormatter

PostulertimeStyle

Si vous souhaitez également afficher l'heure, vous pouvez vous adresser timeStyleà dateFormatter. Cette option s'applique de la même manière que dateStyledans le sens où vous pouvez toujours utiliser les formats intégrés .short, .medium, .longet ..full

Vous attribuez timeStyleainsi :

dateFormatter.timeStyle = .short

Si vous ajoutez la ligne ci-dessus après dateFormatter.dateStyle, elle ajoute l'heure raccourcie à votre date. Vous pouvez voir le résultat ci-dessous:

Date et l'heure

Cet exemple illustre le dateStyleas .fullet le timeStyleas .short.

Voici les autres styles de temps :

Autres styles de temps

NB , Les temps indiqués ci-dessus sont un peu différents des exemples précédents, car il m'a fallu un certain temps pour changer le timeStyle.

UtilisantdateFormat

En plus de définir le dateStyleet timeStyle, nous pouvons également utiliser dateFormat. Nous allons fournir une chaîne qui représente le format de date et d'heure que nous voulons.

Instancions une autre DateFormatterinstance appelée dateFormatter2. Cette fois, utilisons à la dateFormatplace de dateStyleet timeStyle.Voir ci-dessous :

dateFormatter2.dateFormat = "yyyy-MM-dd'T'HH:mm:ss" 

     …

Text(dateFormatter2.string(from: date))
                .padding(.bottom)

Voyons maintenant à quoi cela ressemble dans l'interface utilisateur :

DateFormatter avec DateFormat

Parfait!

Styliser la date

Décomposons dateFormatpour plus de clarté, en commençant par la date.

L'année ( yyyy) est 2022. Nous avons utilisé l'année complète, mais si vous voulez simplement afficher « 22 », vous pouvez utiliser yy.

Le mois ( MM) est 06, correspondant à juin. Si vous souhaitez afficher le mois sans le 0, laissez-le simplement M. Si vous voulez que le mois soit une chaîne, mettez MMMM.

Enfin, le jour ( dd) est 01. Si vous souhaitez afficher le jour sans le 0 devant, laissez-le simplement comme D.

Styliser le temps

Pour formater les heures, ou HH, vous avez deux options. La première consiste à laisser l'heure au format HH, qui s'aligne sur l'échelle de temps de 24 heures. La deuxième option consiste à utiliser l'échelle de 12 heures, et pour ce faire, il vous suffit de la remplacer par H.

mmreprésente les minutes et ssreprésente les secondes. Ceux-ci sont assez explicites.

Pour changer l'ordre de ces nombres, placez-les simplement dans différentes parties de la chaîne. Par exemple, "MM-dd-yyyy'T'h:mm:ss"ressemblera à 06-01-2022T5:48:55.

Jusqu'ici tout va bien! Nous pouvons maintenant utiliser DateFormatterpour formater nos dates et heures en utilisant les formats fournis ou notre propre chaîne.

Il n'y a qu'une seule mise en garde. Vous souvenez-vous de ce que j'ai mentionné à propos de différents pays, villes, continents, etc., ayant des fuseaux horaires et des styles de date différents ? Si seulement il y avait un moyen de formater nos dates en fonction de l'endroit où nous nous trouvons dans le monde…

… et la bonne nouvelle, c'est que nous le pouvons ! Ceci est possible grâce à la localisation .

Utiliser la localisation avec le formatage de la date et de l'heure

La localisation utilise des paramètres régionaux , des ensembles de paramètres utilisés pour définir l'emplacement, la langue et la syntaxe d'un utilisateur. Ceci est important si vous souhaitez rendre une application utilisable dans plusieurs endroits à travers le monde.

La localisation va au-delà de la traduction. Bien que vous puissiez utiliser une API de langue pour traduire "June 1" en anglais en "juni 15" en néerlandais pour une utilisation aux Pays-Bas, cela reste techniquement incorrect en termes de paramètres régionaux.

Aux Pays-Bas, les gens lisent les dates avec le jour précédant le mois. Techniquement, "June 1" devrait être localisé en "1 juin".

La bonne nouvelle est que cela DateFormattergère déjà beaucoup de cela pour nous. Cependant, nous pouvons mettre à jour manuellement DateFormatterles paramètres régionaux de notre en manipulant sa localepropriété.

Cette propriété détermine les paramètres régionaux de notre formateur. Si nous ne modifions pas cette propriété, les paramètres régionaux utilisés seront l'anglais américain (représenté par « en_us» en Swift).

Si nous voulions utiliser les Pays-Bas comme paramètres régionaux, nous pouvons définir la valeur comme suit :

dateFormatter2.locale = Locale(identifier: "nl")

Voyons à quoi ressemble notre rendez-vous avec nos nouveaux paramètres régionaux.

Date avec Pays-Bas Locale

Parfait! De cette façon, nous effectuons non seulement le changement de langue, mais également le formatage des paramètres régionaux. Cela crée une date plus précise dans l'ensemble.

Conclusion

Le formatage de la date dans Swift peut être simple dès la sortie de la boîte, mais nous avons diverses options de flexibilité et de personnalisation. Certains cas peuvent nécessiter une date plus courte, et d'autres peuvent nécessiter une date plus longue.

Vous pouvez également constater que l'affichage du mois sous forme de chaîne est plus acceptable ou cohérent pour votre application que le nombre. Vous pouvez également mieux répondre aux besoins des utilisateurs du monde entier en mettant en œuvre la localisation, ce qui rend votre application plus familière pour eux.

Le temps est notre atout le plus précieux. Le moins que l'on puisse faire est de le formater efficacement.

Tout le code d'accompagnement de cet article est disponible sur GitHub .

Source : https://blog.logrocket.com/how-to-use-dateformatter-swift/

#swift 

What is GEEK

Buddha Community

Comment Formater Vos Dates Avec DateFormatter De Swift

Comment Formater Vos Dates Avec DateFormatter De Swift

Les dates et les heures sont une partie essentielle de la programmation. Ils nous aident à suivre les instances de données et nous permettent d'organiser les ensembles de données par ordre chronologique.

Malgré leur importance, le formatage et l'interprétation de la date et de l'heure ne sont pas toujours aussi simples qu'on pourrait l'espérer.

Par exemple, si la date à New York est le 03/05/2022 et qu'il est 15h20, le New-Yorkais moyen dirait que nous sommes le 3 mai 2022 à 15h20 de l'après-midi. Cependant, cette même date et heure se lirait très différemment à quelqu'un à Londres, où il interpréterait cette date comme le 5 mars 2022 et dirait qu'il est 18h20.

Ces différences sont dues à trois facteurs majeurs : le fuseau horaire (heure normale de l'Est par rapport à l'heure d'été britannique) ; format de date (mois/jour/année vs jour/mois/année) ; et différence de type d'horloge (les États-Unis utilisent l'horloge de 12 heures et, bien que Londres puisse utiliser les deux, leurs documents gouvernementaux utilisent généralement l'horloge de 24 heures).

Ce ne sont là que quelques différences de date et d'heure entre deux villes, mais imaginez les différences entre tous les pays du monde (et même les différences au sein des pays).

C'est pourquoi, si vous souhaitez que votre application soit aussi accessible que possible, vous devez disposer d'une logique pour représenter avec précision les dates et les heures dans des formats compris par différents environnements.

Dans cet article, je vais vous montrer comment formater vos dates avec Swift DateFormatter, ainsi qu'avec d'autres bibliothèques existantes. Tout d'abord, commençons par DateFormatter.

Mise en place de notre environnement

Avant de commencer, préparons-nous. Créez une nouvelle application Swift et ouvrez-la dans Xcode.

Ensuite, allez dans votre ContentView.swiftfichier et, en dehors du corps, instanciez de nouveaux objets Dateet .DateFormatter

let date = Date();
let dateFormatter = DateFormatter();

Datenous donnera la date et l'heure actuelles par rapport à notre fuseau horaire actuel. Pour moi, c'est le mercredi 1er juin 2022.

 

dateFormatterest une instance de la DateFormatterclasse qui nous permet d'utiliser diverses fonctions de formatage sur notre date. Ceci est important car nous ne pourrons pas afficher dateune Textvue sans la formater correctement au préalable. Voyons comment nous pouvons le formater dans le bodyde notre fichier ContentView.

​​var body: some View {
        dateFormatter.dateStyle = .short
        return Text(dateFormatter.string(from: date))
            .padding()
}

Le code ci-dessus abrégera la date et la mettra sous forme numérique. Par exemple, la date d'aujourd'hui pour moi (1er juin 2022) deviendra le 01/06/22.

ExécutionDateFormatter

Pour commencer à utiliser DateFormatter, nous devons attribuer le style que nous voulons. La . shortstyle que nous attribuons rend datedans un format numérique ou raccourci. Cela signifie que le mois, le jour et l'année sont représentés par des nombres. Notez également que l'année n'est composée que de deux chiffres au lieu de quatre.

Ensuite, .stringnous permet de convertir dateen un type de chaîne (ce que notre Textvue exige). Il est stylisé selon dateFormatter, qui est . shortdans notre cas.

Et si nous voulions afficher la date avec le mois sous forme de chaîne abrégée, le jour sous forme de nombre et l'année sous forme de quatre chiffres complets ? C'est facile! Nous utiliserions. mediumà la place de . short.

Et si nous voulions afficher la date avec le nom complet du mois, un jour numérique et l'année complète ?

Vous l'avez deviné, nous utiliserions . long.

Nous pouvons aller encore plus loin en utilisant . full, qui nous donne le jour de la semaine, le nom complet du mois, un numéro pour le jour et l'année complète. Vous pouvez tous les voir ci-dessous.

Exemples de style DateFormatter

PostulertimeStyle

Si vous souhaitez également afficher l'heure, vous pouvez vous adresser timeStyleà dateFormatter. Cette option s'applique de la même manière que dateStyledans le sens où vous pouvez toujours utiliser les formats intégrés .short, .medium, .longet ..full

Vous attribuez timeStyleainsi :

dateFormatter.timeStyle = .short

Si vous ajoutez la ligne ci-dessus après dateFormatter.dateStyle, elle ajoute l'heure raccourcie à votre date. Vous pouvez voir le résultat ci-dessous:

Date et l'heure

Cet exemple illustre le dateStyleas .fullet le timeStyleas .short.

Voici les autres styles de temps :

Autres styles de temps

NB , Les temps indiqués ci-dessus sont un peu différents des exemples précédents, car il m'a fallu un certain temps pour changer le timeStyle.

UtilisantdateFormat

En plus de définir le dateStyleet timeStyle, nous pouvons également utiliser dateFormat. Nous allons fournir une chaîne qui représente le format de date et d'heure que nous voulons.

Instancions une autre DateFormatterinstance appelée dateFormatter2. Cette fois, utilisons à la dateFormatplace de dateStyleet timeStyle.Voir ci-dessous :

dateFormatter2.dateFormat = "yyyy-MM-dd'T'HH:mm:ss" 

     …

Text(dateFormatter2.string(from: date))
                .padding(.bottom)

Voyons maintenant à quoi cela ressemble dans l'interface utilisateur :

DateFormatter avec DateFormat

Parfait!

Styliser la date

Décomposons dateFormatpour plus de clarté, en commençant par la date.

L'année ( yyyy) est 2022. Nous avons utilisé l'année complète, mais si vous voulez simplement afficher « 22 », vous pouvez utiliser yy.

Le mois ( MM) est 06, correspondant à juin. Si vous souhaitez afficher le mois sans le 0, laissez-le simplement M. Si vous voulez que le mois soit une chaîne, mettez MMMM.

Enfin, le jour ( dd) est 01. Si vous souhaitez afficher le jour sans le 0 devant, laissez-le simplement comme D.

Styliser le temps

Pour formater les heures, ou HH, vous avez deux options. La première consiste à laisser l'heure au format HH, qui s'aligne sur l'échelle de temps de 24 heures. La deuxième option consiste à utiliser l'échelle de 12 heures, et pour ce faire, il vous suffit de la remplacer par H.

mmreprésente les minutes et ssreprésente les secondes. Ceux-ci sont assez explicites.

Pour changer l'ordre de ces nombres, placez-les simplement dans différentes parties de la chaîne. Par exemple, "MM-dd-yyyy'T'h:mm:ss"ressemblera à 06-01-2022T5:48:55.

Jusqu'ici tout va bien! Nous pouvons maintenant utiliser DateFormatterpour formater nos dates et heures en utilisant les formats fournis ou notre propre chaîne.

Il n'y a qu'une seule mise en garde. Vous souvenez-vous de ce que j'ai mentionné à propos de différents pays, villes, continents, etc., ayant des fuseaux horaires et des styles de date différents ? Si seulement il y avait un moyen de formater nos dates en fonction de l'endroit où nous nous trouvons dans le monde…

… et la bonne nouvelle, c'est que nous le pouvons ! Ceci est possible grâce à la localisation .

Utiliser la localisation avec le formatage de la date et de l'heure

La localisation utilise des paramètres régionaux , des ensembles de paramètres utilisés pour définir l'emplacement, la langue et la syntaxe d'un utilisateur. Ceci est important si vous souhaitez rendre une application utilisable dans plusieurs endroits à travers le monde.

La localisation va au-delà de la traduction. Bien que vous puissiez utiliser une API de langue pour traduire "June 1" en anglais en "juni 15" en néerlandais pour une utilisation aux Pays-Bas, cela reste techniquement incorrect en termes de paramètres régionaux.

Aux Pays-Bas, les gens lisent les dates avec le jour précédant le mois. Techniquement, "June 1" devrait être localisé en "1 juin".

La bonne nouvelle est que cela DateFormattergère déjà beaucoup de cela pour nous. Cependant, nous pouvons mettre à jour manuellement DateFormatterles paramètres régionaux de notre en manipulant sa localepropriété.

Cette propriété détermine les paramètres régionaux de notre formateur. Si nous ne modifions pas cette propriété, les paramètres régionaux utilisés seront l'anglais américain (représenté par « en_us» en Swift).

Si nous voulions utiliser les Pays-Bas comme paramètres régionaux, nous pouvons définir la valeur comme suit :

dateFormatter2.locale = Locale(identifier: "nl")

Voyons à quoi ressemble notre rendez-vous avec nos nouveaux paramètres régionaux.

Date avec Pays-Bas Locale

Parfait! De cette façon, nous effectuons non seulement le changement de langue, mais également le formatage des paramètres régionaux. Cela crée une date plus précise dans l'ensemble.

Conclusion

Le formatage de la date dans Swift peut être simple dès la sortie de la boîte, mais nous avons diverses options de flexibilité et de personnalisation. Certains cas peuvent nécessiter une date plus courte, et d'autres peuvent nécessiter une date plus longue.

Vous pouvez également constater que l'affichage du mois sous forme de chaîne est plus acceptable ou cohérent pour votre application que le nombre. Vous pouvez également mieux répondre aux besoins des utilisateurs du monde entier en mettant en œuvre la localisation, ce qui rend votre application plus familière pour eux.

Le temps est notre atout le plus précieux. Le moins que l'on puisse faire est de le formater efficacement.

Tout le code d'accompagnement de cet article est disponible sur GitHub .

Source : https://blog.logrocket.com/how-to-use-dateformatter-swift/

#swift 

Houston  Sipes

Houston Sipes

1600430400

10 Free Online Resources To Learn Swift Language

Swift is a fast and efficient general-purpose programming language that provides real-time feedback and can be seamlessly incorporated into existing Objective-C code. This is why developers are able to write safer, more reliable code while saving time. It aims to be the best language that can be used for various purposes ranging from systems programming to mobile as well as desktop apps and scaling up to cloud services.

Below here, we list down the 10 best online resources to learn Swift language.

(The list is in no particular order)

#developers corner #free online resources to learn swift language #learn swift #learn swift free #learn swift online free #resources to learn swift #swift language #swift programming

Top Swift Development Companies | Top Swift Developers - TopDevelopers.co

A thoroughly researched list of top Swift developers with ratings & reviews to help find the best Swift development companies around the world.

#swift development service providers #best swift development companies #top swift development companies #swift development solutions #top swift developers #swift

Hire Dedicated Swift Developers

Want to create a native iOS application for your Startup?

Hire Dedicated Swift Developers for end-to-end services like development, migration, upgrade, testing, and support & maintenance. Trust HourlyDeveloper.io our Swift development team for iOS device apps that are high on performance and security.

Consult with experts:- https://bit.ly/2C5M6cz

#hire dedicated swift developers #swift developers #swift development company #swift development services #swift development #swift

Best Swift App Development Company

Hire an Exceptional Swift App Developer from Mobile App Development India. Maadi has a dedicated Swift App Development team that is superiorly talented and builds highly functional, cost-effective mobile apps with error-free coding.

Contact: https://www.mobile-app-development-india.com/swift-app-development/

#swift ios app development india #hire swift programmer india #swift ios development #apple swift app development #swift mobile app development #swift app development