Les dates avec Apps Script

Pour obtenir la date et l'heure du jour, créez simplement un objet Date sans argument :

function exemple() {
  const date = new Date();
  console.log(date); // Exemple : Fri Jan 12 2024 20:24:45 GMT+0100 (Central European Standard Time)
}

Définir une date

Pour définir une date particulière, entrez-la en tant qu'argument de l'objet Date :

function exemple() {

  let date = new Date(2024, 1, 24);
  console.log(date); // Renvoie : Sat Feb 24 2024 00:00:00 GMT+0100 (Central European Standard Time)
  
  date = new Date(2024, 1, 24, 14, 30);
  console.log(date); // Renvoie : Sat Feb 24 2024 14:30:00 GMT+0100 (Central European Standard Time)
  
  date = new Date('2025-03-25');
  console.log(date); // Renvoie : Tue Mar 25 2025 01:00:00 GMT+0100 (Central European Standard Time)
  
  date = new Date('March 25, 2025 15:25:00');
  console.log(date); // Renvoie : Tue Mar 25 2025 15:25:00 GMT+0100 (Central European Standard Time)
}

Formater une date

Pour formater une date avec Apps Script, utilisez Utilities.formatDate auquel vous renseignez la date, le fuseau horaire et le format.

Voici quelques exemples avec des fuseaux horaires différents :

function exemple() {

  const date = new Date();

  console.log(Utilities.formatDate(date, 'GMT', 'dd/MM/yyyy')); // Exemple : 12/01/2024
  
  console.log(Utilities.formatDate(date, 'GMT+1', 'dd/MM/yyyy HH:mm')); // Exemple : 12/01/2024 21:22
  
  console.log(Utilities.formatDate(date, 'CET', 'dd/MM/yyyy HH:mm')); // Exemple : 12/01/2024 21:22
  
  console.log(Utilities.formatDate(date, 'Asia/Dubai', 'dd/MM/yyyy HH:mm')); // Exemple : 13/01/2024 00:22
  
  console.log(Utilities.formatDate(date, 'Europe/Paris', 'dd/MM/yyyy HH:mm')); // Exemple : 12/01/2024 21:22
  
  // Session.getScriptTimeZone() => fuseau horaire de l'utilisateur
  console.log(Utilities.formatDate(date, Session.getScriptTimeZone(), 'dd/MM/yyyy HH:mm')); // Exemple : 12/01/2024 21:22
}

Et voici différents exemples de formats de dates :

function exemple() {

  const date = new Date('Mon Feb 12 2024 21:48:45 GMT+0100');
  const consoleDate = format => console.log(Utilities.formatDate(date, 'GMT', format));

  consoleDate('dd/MM/yy');           // Renvoie : 12/02/24
  consoleDate('dd-MM-yyyy');         // Renvoie : 12-02-2024
  consoleDate('d MMM yy');           // Renvoie : 12 Feb 24
  consoleDate('d MMMM yyyy');        // Renvoie : 12 February 2024
  consoleDate('E d');                // Renvoie : Mon 12
  consoleDate('EEEE d HH:mm');       // Renvoie : Monday 12 20:48
  consoleDate('dd/MM/yyyy HH:mm');   // Renvoie : 12/02/2024 20:48
  consoleDate('MM/dd/yyyy hh:mm a'); // Renvoie : 02/12/2024 08:48 PM
  consoleDate("'Le' dd.MM.yy 'à' hh:mm"); // Renvoie : Le 12.02.24 à 08:48
  consoleDate("'N° semaine :' w");        // Renvoie : N° semaine : 7
  consoleDate("'Jour semaine (1-7) :' u");// Renvoie : Jour semaine (1-7) : 1
}

Récupérer des informations

Pour récupérer le jour, le mois, l'heure, ..., vous pouvez utiliser l'une de ces méthodes :

function exemple() {

  const date = new Date('Mon Feb 12 2024 21:48:45 GMT+0100');

  console.log(date.getFullYear()); // Renvoie l'année : 2024
  console.log(date.getMonth());    // Renvoie le mois (0-11) : 1
  console.log(date.getDate());     // Renvoie le jour : 12
  console.log(date.getDay());      // Renvoie le jour de semaine (0-6) : 1
  console.log(date.getHours());    // Renvoie l'heure : 21
  console.log(date.getMinutes());  // Renvoie les minutes : 48
  console.log(date.getTime());     // Renvoie le temps écoulé en millisecondes depuis 1970 : 1707770925000
}

Alternative de formatage

Une alternative pour formater une date consiste à utiliser la méthode toLocaleDateString (qui a l'avantage de pouvoir retourner les jours et les mois en français) :

function exemple() {

  const date = new Date('Mon Feb 12 2024 21:48:45 GMT+0100');

  console.log(date.toLocaleDateString()); // Renvoie : 2/12/2024

  console.log(date.toLocaleDateString('fr-FR')); // Renvoie : 12/02/2024

  console.log(date.toLocaleDateString('fr-FR', {
    weekday: 'long',
    year: 'numeric',
    month: 'long',
    day: 'numeric'
  })); // Renvoie : lundi 12 février 2024

  console.log(date.toLocaleDateString('fr-FR', {
    year: '2-digit',
    month: 'numeric',
    day: 'numeric'
  })); // Renvoie : 12/02/24

  console.log(date.toLocaleDateString('fr-FR', {
    weekday: 'short',
    month: 'long',
    day: 'numeric',
    hour: 'numeric',
    minute: '2-digit'
  })); // Renvoie : lun. 12 février à 21:48
}

Ou dans certains cas la méthode toLocaleString :

function exemple() {

  const date = new Date('Mon Feb 12 2024 21:48:45 GMT+0100');

  console.log(date.toLocaleString()); // Renvoie : 2/12/2024, 9:48:45 PM

  console.log(date.toLocaleString('fr-FR')); // Renvoie : 12/02/2024 21:48:45

  console.log(date.toLocaleString('fr-FR', {
    hour: 'numeric',
    minute: '2-digit'
  })); // Renvoie : 21:48
}