Sapui5 Dateformat在Firefox浏览器中不起作用
我从REST获得一个JSON响应,其中包含三个属性和相关的日期格式,如下所示: createdAt:2017-01-10T06:43:16.076Z(使用@Temporal(TemporalType.TIMESTAMP)保存在后端):从rest调用提交 fromDate:2017-01-16Z(使用@Temporal(TemporalType.Date)保存):带有日期选择器的输入字段,用于捕获用户输入的日期 toDate:2017-01-17Z(使用@Temporal(TemporalType.Date)保存):带有日期选择器的输入字段,用于捕获用户输入的日期 在我的XMLView中,我使用格式化程序类将上述三个日期显示为 2017年1月10日、2017年1月16日和2017年1月17日Sapui5 Dateformat在Firefox浏览器中不起作用,sapui5,Sapui5,我从REST获得一个JSON响应,其中包含三个属性和相关的日期格式,如下所示: createdAt:2017-01-10T06:43:16.076Z(使用@Temporal(TemporalType.TIMESTAMP)保存在后端):从rest调用提交 fromDate:2017-01-16Z(使用@Temporal(TemporalType.Date)保存):带有日期选择器的输入字段,用于捕获用户输入的日期 toDate:2017-01-17Z(使用@Temporal(TemporalType
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视图中为view元素调用相同的函数,如下所示:
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'}"/>
创建数据字段的:
对于fromDate字段:
对于toDate字段:
这三种日期格式在chrome中运行良好,但当我看到相同的xml视图时,fromDate和toDate在firefox中为空
你能帮我在Firefox浏览器中纠正这个问题吗
new Date("2017-01-17Z")
在Firefox中不起作用,但在Chrome中起作用new Date("2017-01-17Z")
在Firefox中不起作用,但在Chrome中起作用您可以使用标准数据类型及其丰富的配置功能,而不是编写自己的格式化程序:
<Text
text="{path : 'list>embHeaderData/createdAt', type 'sap.ui.model.type.Date', formatOptions: { pattern: 'd-MMM-Y', source : { pattern : 'yyyy-MM-ddTH:m:s.SZ' }, UTC : true }}"
tooltip="{ path : 'list>embHeaderData/createdAt', type : 'sap.ui.model.type.DateTime', formatOptions: { pattern: 'd-MMM-Y HH:mm:ss', source : { pattern : 'yyyy-MM-ddTH:m:s.SZ' }, UTC : true }}"/>
<Text
text="{path : 'list>embProcessData/fromDate', type : 'sap.ui.model.type.Date', formatOptions: { pattern: 'd-MMM-Y', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"
tooltip="{path : 'embProcessData/fromDate', type : 'sap.ui.model.type.DateTime', formatOptions: { pattern: 'd-MMM-Y HH:mm:ss', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"/>
<Text
text="{path : 'list>embProcessData/toDate', type : 'sap.ui.model.type.Date', formatOptions: { pattern: 'd-MMM-Y', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"
tooltip="{path : 'embProcessData/toDate', type : 'sap.ui.model.type.DateTime', formatOptions: { pattern: 'd-MMM-Y HH:mm:ss', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"/>
您可以使用标准数据类型及其丰富的配置功能,而不是编写自己的格式化程序:
<Text
text="{path : 'list>embHeaderData/createdAt', type 'sap.ui.model.type.Date', formatOptions: { pattern: 'd-MMM-Y', source : { pattern : 'yyyy-MM-ddTH:m:s.SZ' }, UTC : true }}"
tooltip="{ path : 'list>embHeaderData/createdAt', type : 'sap.ui.model.type.DateTime', formatOptions: { pattern: 'd-MMM-Y HH:mm:ss', source : { pattern : 'yyyy-MM-ddTH:m:s.SZ' }, UTC : true }}"/>
<Text
text="{path : 'list>embProcessData/fromDate', type : 'sap.ui.model.type.Date', formatOptions: { pattern: 'd-MMM-Y', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"
tooltip="{path : 'embProcessData/fromDate', type : 'sap.ui.model.type.DateTime', formatOptions: { pattern: 'd-MMM-Y HH:mm:ss', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"/>
<Text
text="{path : 'list>embProcessData/toDate', type : 'sap.ui.model.type.Date', formatOptions: { pattern: 'd-MMM-Y', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"
tooltip="{path : 'embProcessData/toDate', type : 'sap.ui.model.type.DateTime', formatOptions: { pattern: 'd-MMM-Y HH:mm:ss', source : { pattern : 'yyyy-MM-ddZ' }, UTC : true }}"/>
谢谢你的回复。我删除了它,但它仍然只在chrome中工作,在firefox中不工作。嗨,Sebastian,使用上述格式,所有浏览器都会显示日期,但现在fromDate是:2017-01-16+0530,但我需要它,就像2017年1月16日一样。我怎么做?我更改了答案,假设你的时间是UTC;但我不知道是UTC还是local时区在您的情况下,以及您希望显示的内容感谢您的回复。我删除了它,但它仍然只在chrome中工作,而在firefox中不工作。嗨,Sebastian,使用上述格式,日期显示在所有浏览器中,但现在的fromDate是:2017-01-16+0530,但我需要它,就像2017年1月16日一样。我怎么做?我更改了答案,假设您的IME是UTC;但我不知道在您的情况下是UTC还是本地时区,以及您希望显示什么