Was ist der bequemste Weg, um eine bestimmte Instanz Microsoft.SharePoint.SPTimeZone
wie die folgende zu erstellen :
SPTimeZone utc = SPRegionalSettings.GlobalTimeZones
.OfType<SPTimeZone>()
.FirstOrDefault(tz => tz.Information.Bias == 0
&& tz.Information.DaylightBias == 0);
Ist dieser Hack der beste, den ich bekommen kann ...
Dies ist insbesondere für mich ein Problem, da ich diesen Teil des Codes für Unit-Tests verspotten und zwingen möchte, immer UTC zurückzugeben. Die Eigenschaft GlobalTimeZones
scheint von HttpContext.Current
oder einer tatsächlichen Anfrage abzuhängen - eine Voraussetzung, die ich in meinen Unit Tests nicht habe ...
NB: Ich weiß, dass es System.TimeZoneInfo
nur eine Versammlung von Drittanbietern gibt, die mich dazu zwingt, SPTimeZone zu verwenden ...
SPTimeZone
soll die Zeitzone der Site sein, nicht als generische Zeitzonenklasse. Einstellungen gibt Ihnen die Liste der verfügbaren, dh installierten Zeitzonen und wird wahrscheinlich aus den Einstellungen in der Datenbank geladen. Das Fehlen eines Konstruktors hat einen Grund - Sie sollten dies nicht selbst erstellen.SPWeb.RegionalSettings.TimeZone