我从我的REST获得了一个JSON响应,其中包含三个具有相关日期格式的属性,如下所示:
createdAt:2017-01-10T06:43:16.076Z(使用@Temporal(TemporalType.TIMESTAMP)保存在后端:来自其他电话
fromDate:2017-01-16Z(使用@Temporal(TemporalType.Date)保存:带有datepicker的输入字段,用于捕获用户输入的日期
toDate:2017-01-17Z(使用@Temporal(TemporalType.Date)保存:使用datepicker输入字段以捕获用户输入的日期
在我的XMLView中,我使用格式化程序类来显示上述三个日期 2017年1月10日,2017年1月16日和2017年1月17日。
Formater class:
sap.ui.define([
"sap/ui/core/format/DateFormat"
], function(constants, DateFormat) {
"use strict";
var _parse = function(v) {
var oDateFormat = DateFormat.getDateTimeInstance({
pattern: "dd-MMM-YYYY"
});
var oDateTimeFormat = DateFormat.getDateTimeInstance({
pattern: "dd-MMM-YYYY HH:mm:ss"
});
return oDateFormat.parse(v) || oDateTimeFormat.parse(v) || new Date(v);
};
var _getFormattedDateTime = function(v, patt) {
if (!v) {
return v;
}
var oDateFormat = DateFormat.getDateTimeInstance({
pattern: patt
});
return oDateFormat.format(_parse(v));
};
Return {
Date: function(v) {
return _getFormattedDateTime(v, constants.DateFormat);
},
DateTime: function(v) {
return _getFormattedDateTime(v, constants.DateTimeFormat);
},
}
我在视图元素的xml视图中调用相同的内容:
for createdAt field:
<Text text="{path:'list>embHeaderData/createdAt', formatter:'.formatter.Date'}" tooltip="{path:'list>embHeader/createdAt', formatter:'.formatter.DateTime'}"/>
for fromDate field:
<Text text="{path:'list> embProcessData /fromDate', formatter:'.formatter.Date'}" tooltip="{path:'list> embProcessData /fromDate', formatter:'.formatter.DateTime'}"/>
for toDate field:
<Text text="{path:'list> embProcessData /toDate', formatter:'.formatter.Date'}" tooltip="{path:'list>embProcessData/toDate', formatter:'.formatter.DateTime'}"/>
三种日期格式在chrome中工作正常但是当我看到相同的xml视图时,fromDate和toDate在firefox中是空白的。
请帮助我在Firefox浏览器中纠正此问题。
答案 0 :(得分:2)
您可以使用标准数据类型及其丰富的配置功能,而不是编写自己的格式化程序:
{{1}}
答案 1 :(得分:0)
请使用这样的日期格式(假设所有时间都是UTC):
var oDateFormat = sap.ui.core.format.DateFormat.getDateTimeInstance({
pattern: "yyyy-MM-ddZ",
UTC: true
});
var oDateFormatter = sap.ui.core.format.DateFormat.getDateTimeInstance({
style: "medium",
UTC: true
});
// example:
oDateFormatter.format(oDateFormat.parse("2017-01-17Z"), true);
解析toDate和fromDate。 错误是因为
new Date("2017-01-17Z")
在Firefox中不起作用,但在Chrome中不起作用。