Published by

Il y a 2 ans -

Temps de lecture 1 minute

Pépite #2 – iOS : DateFormatter Done Right

Le DateFormatter est une des classes Foundation les plus utilisées mais, aussi, une des plus sous-estimées. Combien de fois avez-vous écrit

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy - hh:mm"
dateFormatter.string(from: Date()) // 25/12/2018 - 19:54

Cette utilisation est perfectible surtout car elle ne prend pas en compte la localisation. Par exemple, en anglais américain, par convention, le formatage devrait plutôt être du type MM/dd/yyyy tandis que la chaine de caractères réprésentant l’heure devrait plutôt ressembler à « 7:54 PM ».

Et si vous aviez toujours sous-estimé DateFormatter ?

Pour nous simplifier la tâche, DateFormatter nous permet de produire une représentation localisée en utilisant la méthode setLocalizedDateFormatFromTemplate(:).
À noter que la locale appliquée par défaut est celle actuellement active sur votre système.

let betterDateFormatter = DateFormatter()
betterDateFormatter.setLocalizedDateFormatFromTemplate("dd/MM/yyyy - hh:mm")
betterDateFormatter.string(from: Date()) 
// 25/12/2018 à 19:54 — si la locale est fr-FR 
// 12/25/2018 at 7:54 PM — si la locale est en-US

Aussi, il existe la possibilité de simplifier grandement la création des formats les plus utilisés, en utilisant les propriétés dateStyle et timeStyle.

let shorterDateFormatter = DateFormatter()
shorterDateFormatter.dateStyle = .short
shorterDateFormatter.timeStyle = .short
shorterDateFormatter.string(from: Date())
// 25/12/18 à 19:54 — si la locale est fr-FR 
// 12/25/18 at 7:54 PM — si la locale est en-US

Ou, de façon encore plus concise :

DateFormatter.localizedString(from: Date(), dateStyle: .short, timeStyle: .short) 

Published by

Publié par Simone Civetta

Simone est responsable technique des équipes mobilités chez Publicis Sapient Engineering.

Commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.