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

Articles similaires

  • Articles connexes
  • Plus de l'auteur

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