如何在 SAPUI5 中将 "MM/yyyy" 模式格式化为依赖于语言环境的“<month name> / yyyy”?

How to format "MM/yyyy" pattern to locale-dependent "<month name> / yyyy" in SAPUI5?

我从后端获取数据格式为“12/2019”的日期,并希望转换为“Dez / 2019”格式(德语为“Dez”,英语为“Dec”)。有人有想法吗?

我的 XML 视图中的片段:

<cells>
  <Text text="{Period}" />
  <!-- ... -->
<cells>

Period 是一个 OData V2 实体 属性,它的 EDM 类型是字符串。

试试:

<Text text="{
  path: 'Period',
  type: 'sap.ui.model.type.Date',
  formatOptions: {
    pattern: 'MMM / yyyy',
    source: {
      pattern: 'MM/yyyy'
    }
  }
}" />

这是一个工作演示(点击 运行 代码片段):

sap.ui.getCore().attachInit(() => sap.ui.require([
  "sap/ui/core/Fragment",
], Fragment => Fragment.load({
  definition: `<Text xmlns="sap.m"
    text="{
      value: '12/2019',
      type: 'sap.ui.model.type.Date',
      formatOptions: {
        pattern: 'MMM / yyyy',
        source: {
          pattern: 'MM/yyyy'
        }
      }
    }"
  />`
}).then(control => control.placeAt("content"))));
<script id="sap-ui-bootstrap"
  src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
  data-sap-ui-libs="sap.ui.core,sap.m"
  data-sap-ui-theme="sap_fiori_3"
  data-sap-ui-async="true"
  data-sap-ui-compatversion="edge"
  data-sap-ui-xx-waitfortheme="init"
></script><body id="content" class="sapUiBody"></body>

由于 Period 的 EDM 类型是字符串,在这种情况下只需使用 sap.ui.model.type.Date 就足够了。但是,如果类型为 Edm.DateTime,通常用于表示 OData V2 中的日期值,则类型为 sap.ui.model<strong>.odata</strong>.type.Date<strong>时间</strong>要考虑