が作成またはエントリのSharePoint変換を更新中の結果として2016-10-19T02:00.00
になるだろう(Time Zone
現在の選択に基づいて、サイト)を使用し、日時の値を協定世界時(UTC)で保存します。 SharePoint OnlineのRESTサービスは、(それがPrefer: outlook.timezone
ヘッダを介して制御することができるOutlookのサービスのように、詳細については、例えばhereを参照、オフィス365内の別のサービスから離れて)UTCの日時を返し
前提
Moment.js
:ライブラリ
は、ローカル時間にそれを表示するために、REST応答から日時値を変換する必要があると述べました
はそれとも、現地時間
var TimeZoneUtilities = {
utcToLocalTime: function getSPCurrentTime(webUrl,value) {
return $.ajax({
url: webUrl + "/_api/web/RegionalSettings/TimeZone",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" }
}).then(function (data) {
var offset = -(data.d.Information.Bias + data.d.Information.StandardBias + data.d.Information.DaylightBias)/60.0;
return moment.utc(orderDateString).utcOffset(offset).toDate();
});
}
};
この機能は、SharePoint APIからSPTimeZone.LocalTimeToUTC method
に似ているに協定世界時(UTC)から指定されたDateTime値を変換する以下の機能を利用することができます。
使い方はあなたのコードはどこにあるの
var orderDateString = "2016-10-19T22:00.00Z"; //UTC datetime value from REST response
var orderDate = new Date(orderDateString);
TimeZoneUtilities.utcToLocalTime(_spPageContextInfo.webAbsoluteUrl,orderDate)
.done(function(value)
{
console.log("Server time: " + value.format("yyyy MM dd"));
})
.fail(function(error){
console.log(JSON.stringify(error));
});
?どのように日付を設定していますか?ほとんどの場合、サーバーが保存する前に変更する必要があるローカルDateTime値(DateTimeKind.Local)を送信している可能性があります。 SPが現地時間を保存しても、サーバがあなたのコードと異なるタイムゾーンを持っていたとしても、同じエラーが表示されます。 'DateTimeKind.UTC'で値を作成するには' ToUtc'を使い、あいまいさを避けるには 'DateTimeOffset'を使用してください –
私はSPのサービスはISO8601(datetimeoffsetに相当)を使うと思います。 'DateTime'は' 2016-10-20T00:00:00 + 02:00'に変換されました - ISO8601形式の正しい現地時間 –
私はSharePoint-UIのSharePointリスト項目を編集しています。これは論理的なアプリアクションからの応答です: "body":{ [簡略化のため簡略化...] "orderdate": "2016-10-19" } – nyn3x