Sharepoint users roles

Sharepoint e campi DateTime

Recentemente ho dovuto mettere mano ad un’applicazione SharePoint Online ed il render di campi di tipo DateTime. L’utilizzo di campi di tipo data generalmente può generare non pochi problemi dovuti alle diverse timezone e ai formati utilizzati dallo storage.

In particolar modo, la mia applicazione ha il compito di visualizzare una serie di appuntamenti (con data e ora).

La mia applicazione memorizza eventi creati dagli utenti utilizzando la funzione Add dell’area amministrativi, e li visualizza in alcune pagine recuperandoli con javascript.

Il valore dei campi DateTime è differente da quello mostrato in SharePoint. Il motivo è abbastanza semplice: la timezone del server.

Sharepoint memorizza i campi DateTime in formato UTC.

La memorizzazione nel formato UTC consente una maggiore flessibilità, ma è necessario recuperare il valore corretto dell’offset per poter calcolare l’ora (e quindi anche la data corretta). Trattandosi di javascript per la gestione della date non si può non utilizzare la libreria moment.js, una sorta di coltellino svizzero per la gestione delle date.

SharePoint Online offre diverse soluzioni per ottenere la configurazione della timezone e altre informazioni relative alle date.  La soluzione che ho scelto è stata quella di utilizzare un’ API REST messa a disposizione senza alcuna configurazione e che risponde sia in formato xml, sia in formato Json. Nel mio caso ho optato per il Json.

Un API per i settings della timezone

L’ API è raggiungibile all’indirizzo:

[SHAREPOINT_SERVERLINK]/_api/Web/RegionalSettings/TimeZone

In pratica ho creato una semplice funziona Ajax che esegue una GET, recupera il valore dell’offset, bias, daylight ecc… per poter effettuare il calcolo corretto utilizzando moment.js.

Effettuando la GET è possibile ottenere la coppia elenco/valore che possono essere utilizzati nei nostri calcoli.

Ovviamente è consigliabile inserire anche una funzione di callback per evitare problemi di sincronia.

 

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.