JavaScript, HTML, CSS e... !
2 commenti

Pillola di Apps Script #0015

Il ruolo del timeZone nella formattazione delle date

Pillola di Apps Script #0015

Nome: Il ruolo del timeZone nella formattazione delle date

Descrizione: Per convertire una data nel formato di interesse, con Google Apps Script, è possibile utilizzare il metodo formatDate della Classe Utilities. Tale metodo accetta tra i parametri il timeZone (che indica il fuso orario con il quale sarà gestito il risultato). È molto importante prestare attenzione a questo parametro in quanto il risultato della conversione del formato della data può essere imprevisto e inaspettato. Il codice che segue mostra alcuni metodi per definire il timeZone. A seguire la spiegazione di quale approccio è consigliato utilizzare ed il perché conviene farlo.

Stato di verifica: VERIFICATO

Ambito di utilizzo: Google Script, Google Sheets

Segnalatore: Michele Pisani (Analytics Traps)

Codice:

Utilities.formatDate(date, ‘UTC‘, ‘yyyy-MM-dd’);
Utilities.formatDate(date, ‘GMT+1‘, ‘yyyy-MM-dd’);
Utilities.formatDate(date, ss.getSpreadsheetTimeZone(), ‘yyyy-MM-dd’);

Maggiori informazioni su: https://www.analyticstraps.com/utc-vs-gmt-vs-getspreadsheettimezone/

Quando si lavora con le date in Google Sheets, e relative elaborazioni con Google Apps Script, è consigliato definire sempre lo stesso timeZone dello strumento dal quale si recuperano i valori, appunto lo Spreadsheet. Per farlo sarà sufficiente applicare il metodo getSpreadsheetTimeZone() all’istanza del Foglio di Google all’interno del file di script.
Maggiori informazioni, un esempio pratico ed un caso di anomalia nell'utilizzo di un metodo diverso da quello indicato, si trovano sul mio blog relativo alle Trappole di Analyticshttps://www.analyticstraps.com/utc-vs-gmt-vs-getspreadsheettimezone/

Se vuoi scrivere anche tu la tua Pillola di Apps Script su appsscript.it segui le indicazioni contenute nell'articolo "Pillole di Apps Script: la sezione dedicata a piccole funzioni, trucchi e suggerimenti".

Il tuo contributo è fondamentale, quello che per qualcuno può sembrare una banalità per qualcun altro è un grande aiuto!

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

2 Commenti

  1. Thursday, July 14, 2022 alle ore 19:48 Domenico Taibbi

    Ciao, ho un problema con le date ore, reperisco dal mio calendario google in funzione ad un evento la data inizio e fine. Prima considerazione sulle impostazioni di calendar ad oggi mi porta GMT+02:00 come fuso orario , nel foglio di google dove gira il mio script impostazioni vedo GMT+01:00 (quindi prima differenza) cmq quando eseguo lo script e reperesco l'evento utilizzando (var data1 = Utilities.formatDate(new Date(event[W].getStartTime()), Sheet.getSpreadsheetTimeZone , "dd-MM-yyyy HH:mm:ss");) l'orario sul calendario è settatto alle ore 14:00 la variabile data1 è uguale a 12 e non a 14. Ho provato ad utilizzare nellUtilities di fisso GMT+2 e funziona , ma non mi va bene perche non è variabile al cambio del fuso oraario.
    INOLTRE l'istruzione (var dd1 = new Date(event[W].getStartTime());) in questo caso la variabile dd1 riporta come ora 08 e non 14 portando come fuso urario GMT-0400 (Easterling Daylight Time)
    il primo forse potrebbe essere piu semplice ma non ho capito perche non funziona il secondo come faccio recuperare l'oraro in base al fuso orario?

    Rispondi a questo commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web