Apps Script : La nouvelle fonction parseDate

La manipulation de dates n’est pas l’exercice le plus facile pour les débutants sur Google Apps Script. En effet souvent il est nécessaire de jongler entre le type Date et des dates au format texte. Cette […]

personnes ont consulté cet article

2 minutes

Rédigé par Mathieu D'Hondt - il y a 5 mois

Ce que vous allez découvrir

  • Parser une date sans parseDate
  • Présentation de parseDate(date, timeZone, format)

Apps Script : La nouvelle fonction parseDate

La manipulation de dates n’est pas l’exercice le plus facile pour les débutants sur Google Apps Script. En effet souvent il est nécessaire de jongler entre le type Date et des dates au format texte. Cette gymnastique doit être faite dans chaque nouveau projet dès lors que le format de date écrit – par exemple dans un Google Sheets – est différent. Heureusement Google a ajouté le mois dernier une toute nouvelle fonction à la classe Utilities, la fonction parseDate.

Parser une date sans parseDate

Découvrez ci-dessous comment – par manque d’une fonction magique – une date au format texte était malmenée pour devenir ce qu’elle aurait toujours dû être, une date de type Date. Sinon passez directement à la présentation de parseDate.

Que signifie ce mot "parser" ?

Ce terme est employé dans la fonction parseDate et cela pour une très bonne raison ! C’est également un terme retrouvé très couramment dans le domaine du développement et en connaître la signification est une bonne chose. « Parser » est un anglicisme – comme 90% du jargon des développeurs – qui vient du verbe To Parse et qui lui veut dire d’après le Larousse : « Faire l’analyse grammaticale de ». Concrètement, parser un texte revient à le découper en plusieurs éléments facilement identifiables. Ainsi une date écrite au format : « 09-12-2022 » peut être parsée en « jour-mois-année », c’est le modèle qui a été suivi pour l’écrire ainsi.

Exemple d'analyse d'un texte sans parseDate

Voici une façon de faire qui montre comment il est possible de récupérer une variable de type Date à partir d’une date de type texte.

Ici nous avons une date sous forme de texte (car entre guillemets). Chaque élément constituant cette date est extrait à partir du texte, ici en récupérant un par un le jour, le mois et l’année. Ces trois informations servent ensuite de paramètres pour construire l’objet final qui est de type Date. Petite subtilité : le type Date considère le premier mois de l’année comme le mois zéro, il faut donc penser à retirer un à notre valeur « mois » pour respecter cela.

Présentation de parseDate(date, timeZone, format)

La fonction parseDate a pour but de créer très facilement un objet de type Date à partir du format texte. L’intérêt principal d’avoir cette fonction est que celle-ci fonctionne avec un très grand nombre de formats texte différents. En effet la fonction parseDate ajoutée à Google Apps Script s’appuie sur la spécification de la classe SimpleDateFormat disponible en Java. La documentation de SimpleDateFormat (en anglais) montre toute la puissance de cette fonction.

Passons à l’utilisation de cette fonction, celle-ci a besoin de trois paramètres : 

  • date : Le plus simple, c’est tout simplement la date écrite au format texte, donc un objet de type string ;
  • timeZone : Le plus évident,  c’est le fuseau horaire que respectera notre date en sortie. Voici une liste des fuseaux horaires acceptés ;
  • format : Le cœur de la machine, ce paramètre est une chaîne de caractère qui décrit le format de la date fournie en premier paramètre.

Quelques exemples pour comprendre :

  • parseDate(« 09-12-2022 », « Europe/Paris », « dd-MM-yyyy ») ;
  • parseDate(« 09-12-2022 15h30 », « Europe/Paris », « dd-MM-yyyy HH’h’mm »).

Note : Enormément de combinaisons sont possibles et celles-ci permettent de parser tous les formats d’écriture de date les plus usuels, que ce soit un format français, anglo-saxon ou autre.

Comment l’invoquer depuis l’éditeur Apps Script ?

Pour l’invoquer depuis l’éditeur, cela se fait en une seule ligne de code. Seule subtilité, il faut bien penser que cette fonction appartient à la classe Utilities et donc l’appeler en conséquence !

Ligne de code : appeler la fonction parseDate

Rien de plus simple, cet appel retourne un objet de type Date et qui prend bien en compte le fuseau horaire donné. Adieu aux manipulations de dates hasardeuses, et bonjour la facilité !

Besoin d'un peu plus d'aide sur Apps Script ?

Des formateurs sont disponibles toute l'année pour vous accompagner et optimiser votre utilisation de Apps Script, que ce soit pour votre entreprise ou pour vos besoins personnels !

Découvrir nos formations Apps Script

Rédacteur

Photo de profil de l'auteur
Mathieu D'Hondt

Consultant Google Workspace et Développeur chez Numericoach

S’abonner
Notification pour
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires