Publié par

Il y a 3 semaines -

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) 

Publié par

Publié par Simone Civetta

Simone est responsable technique des équipes mobilités chez Xebia. Il est également formateur au sein de Xebia Training .

Commentaire

Laisser un commentaire

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

Nous recrutons

Être un Xebian, 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.