web-dev-qa-db-fra.com

Script d'applications Google FormatDDate à l'aide du fuseau horaire de l'utilisateur au lieu de GMT

J'ai une ligne qui définit la date et l'heure actuelles dans une cellule:

sheet.getRange(1,1).setValue(new Date());

Ensuite, j'ai une ligne qui crée une date formatée en fonction de la valeur de cette cellule:

var addedDate = sheet.getRange(1,1).getValue();
var addedTime = Utilities.formatDate(addedDate, "GMT", "hh:mm a");

L'heure ajoutée résultante semble être dans le fuseau horaire GMT et j'en ai besoin pour être dans le fuseau horaire de l'utilisateur. Ce sera généralement l'heure de l'Est (-0500), mais si je soustrayez simplement 5 heures à partir de l'heure, cela ne tient pas compte de l'heure d'été (-0400).

J'ai vérifié la documentation pour formatDaate ici: https://developers.google.com/apps-script/reference/uties/utieux#formatDate (date, chaîne, chaîne)

quels liens vers le fichier officiel Java SimpleDateformat Class Documentation ici: http://docs.oracle.com/javase/6/docs/aPi/java/text/simpledateformat.html

... Mais je ne trouve pas une liste de zones de temps valides là-bas pour remplacer le GMT avec.

14
Employee

Vous pouvez directement obtenir le fuseau horaire de tableur comme celui-ci:

  var addedDate = sheet.getRange(1,1).getValue();
  var addedTime = Utilities.formatDate(addedDate, SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "hh:mm a");

Voir Doc ici

mais Google Apps Script utilise ces formats si vous souhaitez le choisir vous-même:

http://joda-time.sourceforge.net/timezones.html

24
Serge insas