我正在使用SAPUI5库版本1.44.19开发SAPUI5应用程序。我使用sap.m.DatePicker
来显示数据,它是从oData ServiceV1.0获取数据的双向JSON模型。
在将oData日期绑定到JSON模型之前,我正在进行如下日期格式化:
"ProjectFinishDate": Formatter.getDateToServerDate(oData.PlanProjEdate)
各自的格式化程序功能:
getDateToServerDate: function (date) {
if (date) {
var d4 = date.getTime();
var TimezoneOffset = new Date(0).getTimezoneOffset();
var off = TimezoneOffset * 60 * 1000;
var sec = d4 + off;
var date1 = new Date(sec);
date1.setHours(0, 0, 0, 0);
return date1;
} else {
return null;
}
}
相应的XML绑定是:
<DatePicker id="idInitAppOEInfoFinishDate" dateValue="{ path:
'oMdlInitApprovalDtlHeader>/ProjectFinishDate' }"
displayFormat="dd-MMM-yyyy" class="padLeft0px" visible="
{oMdlFieldsVisibility>/ProjectFinishDateVisible}"
enabled="{oMdlFieldsVisibility>/ProjectFinishDateEditable}"
change="onChangeFinishDate">
格式化后oData服务日期的控制台输出。
Thu Oct 18 2018 00:00:00 GMT+0530 (India Standard Time)
并且DataPicker
的输出为空。
发布于 2019-08-06 12:38:59
根据SAP,您不应该使用dateValue
。
虽然可以绑定它,但建议不要这样做。当需要绑定时,请改用value属性。https://sapui5.hana.ondemand.com/#/api/sap.m.DateTimeField/methods/getDateValue
由于您的主要问题似乎与时区相关,这里有一种不同的方法:
<DatePicker
value="{
path: 'oMdlInitApprovalDtlHeader>/ProjectFinishDate',
type: 'sap.ui.model.type.Date',
formatOptions: { style: 'medium', strictParsing: true , UTC: true }
}" />
这样,您的日期将采用协调世界时(UTC)。
https://stackoverflow.com/questions/57370903
复制