Sapui5 Dateformat在Firefox浏览器中不起作用

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

我从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日

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浏览器中纠正这个问题吗

  • 请删除fromDate和toDate的绑定路径中的空白
  • 请使用如下日期格式(假设所有时间均为UTC):

    解析toDate和fromDate。 这个错误是因为

    new Date("2017-01-17Z")
    
    在Firefox中不起作用,但在Chrome中起作用

  • 请删除fromDate和toDate的绑定路径中的空白
  • 请使用如下日期格式(假设所有时间均为UTC):

    解析toDate和fromDate。 这个错误是因为

    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还是本地时区,以及您希望显示什么