만들거나 항목 셰어의 변환을 업데이트하는 동안의 결과로 2016-10-19T02:00.00
을 얻을 것입니다 (Time Zone
현재의 선택에 따라 (Regional Settings
)을 사용하고 datetime 값을 UTC (Coordinated Universal Time)로 저장합니다. 셰어 포인트 온라인 REST 서비스는 (은 Prefer: outlook.timezone
헤더를 통해 제어 할 수 아웃룩 서비스처럼 자세한 내용은 예를 here에 대한 참조, 오피스 365의 다른 서비스 차별화) UTC의 날짜를 반환
전제 조건
Moment.js
: 라이브러리
는 현지 시간을 표시하기 위해 REST 응답에서 날짜 값을 변환해야했다 가졌 428,
가 아니면 현지 시간
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();
});
}
};
이 기능은 셰어 API에서 SPTimeZone.LocalTimeToUTC method
과 유사에 협정 세계시 (UTC)에서 지정된 날짜 시간 값을 변환하는 다음과 같은 기능을 활용할 수 있습니다.
사용하여 코드 어디
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가 로컬 시간을 저장 했더라도 서버가 코드와 다른 시간대를 사용하는 경우에도 동일한 오류가 발생합니다. 'ToUtc'를 사용하여 'DateTimeKind.UTC'로 값을 만들거나'DateTimeOffset'을 사용하여 모호한 점을 피하십시오. –
BTW SP의 서비스는 ISO8601 (datetimeoffset에 해당)을 사용합니다. 즉, 시간이 코드에 의해 수정되었다는 것을 의미합니다. 'DateTime'은 ISO8601 형식의 올바른 현지 시간 인'2016-10-20T00 : 00 : 00 + 02 : 00'로 변환되었습니다. –
SharePoint-UI에서 SharePoint 목록 항목을 편집 중입니다. 논리 - 앱 - 액션에서 얻은 응답입니다. "body": { ... [간결성을 위해 ...] "orderdate": "2016-10-19" } – nyn3x