为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 SAPUI5 中将日期时间字符串转换为日期?

如何在 SAPUI5 中将日期时间字符串转换为日期?

函数式编程 2022-12-29 15:19:04
我正在尝试在 SAPUI5 中将字符串转换为日期var Fdate = "2020-08-01T00:00:00";var dateFormat = sap.ui.core.format.DateFormat.getDateInstance({    pattern: "dd/MM/yyyy"});fdateFormatted = dateFormat.format(Fdate);但这会返回以下错误:未捕获的类型错误:j.getTime 不是一个函数我尝试将源模式设置为“yyyy-MM-ddTHH:mm:ss”。但这会返回相同的错误。
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

在JS中

// DateFormat required from "sap/ui/core/format/DateFormat"

const dt = DateFormat.getDateTimeInstance({ pattern: "dd/MM/yyyy" });

const jsDateObject = dt.parse("2020-08-01T00:00:00"); // returns: Sat Aug 01 2020 00:00:00 <timezone information>

const dayMonthYear = dt.format(jsDateObject) // returns: "01/08/2020"

  • 如果字符串包含日期时间,则通过日期时间实例对其进行解析。应用程序接口

  • .parseapi等待字符串值并将其转换为 JS 日期(例如,用于将其存储在模型中)。

  • .formatapi等待 JS 日期并将其转换为字符串表示形式(例如,用于在 UI 中显示它)。


双向数据绑定(模型-视图-视图模型模式)

类似于https://stackoverflow.com/a/63131534/5846045

<DatePicker value="{

  path: '/MyDateTimeString',

  type: 'sap.ui.model.type.Date',

  formatOptions: {

    source: {

      pattern: 'yyyy-MM-ddTHH:mm:ss'

    }

  }

}" />

然后框架将自动使用.format.parse。即用户可以在 UI 中选择或输入日期,然后输入将被解析并作为 JS 日期存储在模型中,而无需编写一行 JS 代码。

sap.ui.getCore().attachInit(() => sap.ui.require([

  "sap/ui/core/mvc/XMLView",

  "sap/ui/model/json/JSONModel", // sample model. Works also with ODataModel.

], (XMLView, MyModel) => XMLView.create({

  definition: `<mvc:View xmlns:mvc="sap.ui.core.mvc">

    <VBox xmlns="sap.m" class="sapUiTinyMargin">

      <DatePicker

        width="12rem"

        value="{

          path: '/MyDateTimeString',

          type: 'sap.ui.model.type.Date',

          formatOptions: {

            source: {

              pattern: 'yyyy-MM-ddTHH:mm:ss'

            }

          }

        }"

      />

      <ObjectAttribute

        title="Model"

        text="&#34;{/MyDateTimeString}&#34;"

      />

    </VBox>

  </mvc:View>`,

  models: new MyModel({ // e.g. v2.ODataModel

    MyDateTimeString: "2020-08-01T00:00:00", // Type="Edm.String"

  }),

}).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 sapUiSizeCompact"></body>

单击“显示代码片段”并Run code snippet查看实际演示。



查看完整回答
反对 回复 2022-12-29
?
慕标5832272

TA贡献1966条经验 获得超4个赞

formater 函数需要一个日期对象。


var Fdate = "2020-08-01T00:00:00";

var date = new Date(Fdate);

var dateFormat = sap.ui.core.format.DateFormat.getDateInstance({

    pattern: "dd/MM/yyyy"

});

fdateFormatted = dateFormat.format(date);


查看完整回答
反对 回复 2022-12-29
  • 2 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信