giovedì 25 giugno 2009

Feed RSS con SharePoint - Errata Corrige

In un precedente articolo (Feed RSS con SharePoint - 2/2) ho scritto il seguente codice per impostare una data all'interno del feed RSS:

xtw.WriteElementString(”pubDate”, pages.Created.ToString(”R”));

Questo però genera un problema con i reader (per esempio Outlook). Il metodo ToString della classe DataTime riporta in stringa la data letta da Sharepoint nel formato GMT, ma non aggiorna la data rispetto al meridiano di Greenwich! I reader invece interpretano la data come riferita al meridiano e la correggono in base al fuso orario del paese in cui si trovano, quindi per l'italia in regime di ora legale sommano 2 ore. Capita così di avere item che riportano un orario di insermento superiore all'orario attuale. Per sistemare il problema, bisogna usare l'istruzione seguente:

xtw.WriteElementString(”pubDate”, pages.Created.ToUniversalTime.ToString(”R”));

L'istruzione ToUniversalTime invece riconverte la data rispetto al meridiano di Greenwich.