Возможно ли получить часовой пояс сайта Sharepoint программным путем с помощью Microsoft.SharePoint.Client в C#? Мне нужен часовой пояс сайта Sharepoint, чтобы он соответствовал конкретному часовому поясу.Можно ли запрограммировать часовой пояс сайта Sharepoint с помощью Microsoft.SharePoint.Client?
ответ
К сожалению, для объектной модели клиента Side невозможно получить временную зону perse. Объектная модель сервера и SPServices содержит свойство SPWeb под названием RegionalSettings, однако этого не хватает в CSOM.
Хорошо, что CSOM имеет функцию Utility, называемую FormatDateTime
, которую вы можете использовать для преобразования определенной строки/даты в часовой пояс вашего сайта.
Ниже приведен пример его использования в простой консольного приложения:
ClientContext clientContext = new ClientContext("http://yoursite.com");
Site site = clientContext.Site;
DateTime dt = DateTime.Parse("04/24/2013 5:44PM").ToUniversalTime();
ClientResult<string> cr = Utility.FormatDateTime(clientContext, clientContext.Web, dt, DateTimeFormat.DateTime);
clientContext.ExecuteQuery();
string value = cr.ToString();
DateTime webdt = DateTime.Parse(cr.Value.ToString());
Console.WriteLine(webdt.ToString());
Console.Read();
Примите к сведению, что вам нужно иметь библиотеки DLL клиента SharePoint, включенных в проект, а также ссылки на них должным образом. Надеюсь это поможет.
ClientContext context = new ClientContext(yourSite);
var culture = context.Web.RegionalSettings;
context.Load(culture);
var tz = culture.TimeZone;
context.Load(tz);
context.ExecuteQuery();
context.Dispose();
TZ будет содержать часовой пояс, смещение, и т.д ..
RegionalSettings не является собственностью ClientContext.Web. Этот фрагмент кода дает мне синтаксическую ошибку. И, конечно же, я ссылаюсь на DLL-файлы Sharepoint Client. – bittusarkar
http://msdn.microsoft.com/en-Us/library/microsoft.sharepoint.client.regionalsettings.aspx Тот факт, что вы его не нашли, вероятно, потому, что вы используете SP2010. – Deptor
Мой код похож на Deptor, но я думаю, что мой код исправляет несколько проблем синтаксиса, которые я имел, когда я попытался запустить его на моем SP 2013 сайт. Я также использую некоторые глобальные переменные для хранения таких вещей, как объекты CSOM ClientContext, Web, Culture и Timezone SP, чтобы помочь учащимся понять, что содержит каждый объект.
Код:
var context, web, culture, tz;
var siteTzId, siteTzDesc, siteTzInformation;
getSiteRegionalTimeZone();
setTimeout(function(){
alert("Site TZ = |"+ siteTzDesc +"|");
}, 2000);
function getSiteRegionalTimeZone() {
context = new SP.ClientContext();
web = context.get_web();
culture = web.get_regionalSettings();
context.load(culture);
tz = culture.get_timeZone();
context.load(tz);
context.executeQueryAsync(function(){
siteTzId = tz.$5_0.$H_0.Id;
siteTzDesc = tz.$5_0.$H_0.Description;
siteTzInformation = tz.$5_0.$H_0.Information;
});
context.dispose();
};
Постараюсь это. Благодаря! – Rhia
Кто-то должен отметить это как ответ. – danludwig