从SAPUI5表中的ODataModel格式化日期

时间:2014-05-08 09:17:07

标签: date format sapui5

我有一个从OData模型填充的SAPUI5表。其中一个列是我想格式化的日期/时间字段,但我无法弄清楚如何在SUI5中进行格式化。

这就是我现在正在做的事情:

var tableModel = new sap.ui.model.odata.ODataModel("...");
var table = new sap.ui.table.DataTable();
table.setModel(tableModel);
table.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "Date"}),
    template: new sap.ui.commons.TextView().bindProperty("text", "DATE"),
    sortProperty: "DATE",
    filterProperty: "DATE"
}));

这是前两行输出(我的浏览器语言是德语):

example output

我想要做的就是将日期和时间格式更改为mm / dd / yyyy hh:mm

我做了一些搜索,以下问题正是我的问题 - 但有一个已接受的答案,我不理解或实际上没有解决问题: Date format in a table SAPUI5

我意识到这可能是一个微不足道的问题,我只是错过了如何轻松地做到这一点,或者它是在一个官方教程中处理的。在这种情况下,请在评论中指出我,我将删除这个问题。

4 个答案:

答案 0 :(得分:16)

使用格式化程序函数非常灵活,但如果您在寻找更简单的东西而无需编写自己的格式逻辑,则可以考虑使用type属性而不是formatter这样的:

template: new sap.ui.commons.TextView().bindProperty("text", {
  path: "OrderDate",
  type: new sap.ui.model.type.Date({pattern: "MM/dd/yyyy hh:mm"})
})

答案 1 :(得分:4)

也值得考虑标准模型格式化程序:sap.ui.model.type.DateTimesap.ui.model.type.Date

template: new sap.ui.commons.TextView().bindProperty("text", {
  path: "DATE",
  type: new sap.ui.model.type.DateTime,
  formatOptions: { style: "medium" }
})

XML示例(总是使用XML;)

<Text text="{path : 'runDateTime', 
             type : 'sap.ui.model.type.DateTime',
             formatOptions: { style : 'medium'}}" />

由于使用UI5通常是关于为应用程序应用标准视图的对话,因此使用标准格式可能是一个有用的想法。

答案 2 :(得分:3)

使用formatter-function:

var tableModel = new sap.ui.model.odata.ODataModel("...");
var table = new sap.ui.table.DataTable();
table.setModel(tableModel);
table.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "Date"}),
    template: new sap.ui.commons.TextView({
        text : { 
            path : 'DATE',
            formatter : function(value){
                return /* TODO: some format logic */;
            }
        }
    }),
    sortProperty: "DATE",
    filterProperty: "DATE"
}));

答案 3 :(得分:1)

我还在添加如何使用格式化程序功能格式化数字。

 <template> = new sap.ui.commons.TextField().bindProperty("<value>",{
          path: "<GROSSVALUE>",
          type: new sap.ui.model.type.Integer({
              maxIntegerDigits: 10,
              minFractionDigits: 2,
              maxFractionDigits: 2,
              groupingEnabled: true,
              groupingSeparator: ",",
              decimalSeparator: "."
            })});