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

我正在尝试在 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”。但这会返回相同的错误。


函数式编程
浏览 74回答 2
2回答

慕容森

在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="{&nbsp; path: '/MyDateTimeString',&nbsp; type: 'sap.ui.model.type.Date',&nbsp; formatOptions: {&nbsp; &nbsp; source: {&nbsp; &nbsp; &nbsp; pattern: 'yyyy-MM-ddTHH:mm:ss'&nbsp; &nbsp; }&nbsp; }}" />然后框架将自动使用.format和.parse。即用户可以在 UI 中选择或输入日期,然后输入将被解析并作为 JS 日期存储在模型中,而无需编写一行 JS 代码。sap.ui.getCore().attachInit(() => sap.ui.require([&nbsp; "sap/ui/core/mvc/XMLView",&nbsp; "sap/ui/model/json/JSONModel", // sample model. Works also with ODataModel.], (XMLView, MyModel) => XMLView.create({&nbsp; definition: `<mvc:View xmlns:mvc="sap.ui.core.mvc">&nbsp; &nbsp; <VBox xmlns="sap.m" class="sapUiTinyMargin">&nbsp; &nbsp; &nbsp; <DatePicker&nbsp; &nbsp; &nbsp; &nbsp; width="12rem"&nbsp; &nbsp; &nbsp; &nbsp; value="{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; path: '/MyDateTimeString',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type: 'sap.ui.model.type.Date',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; formatOptions: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; source: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pattern: 'yyyy-MM-ddTHH:mm:ss'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }"&nbsp; &nbsp; &nbsp; />&nbsp; &nbsp; &nbsp; <ObjectAttribute&nbsp; &nbsp; &nbsp; &nbsp; title="Model"&nbsp; &nbsp; &nbsp; &nbsp; text="&#34;{/MyDateTimeString}&#34;"&nbsp; &nbsp; &nbsp; />&nbsp; &nbsp; </VBox>&nbsp; </mvc:View>`,&nbsp; models: new MyModel({ // e.g. v2.ODataModel&nbsp; &nbsp; MyDateTimeString: "2020-08-01T00:00:00", // Type="Edm.String"&nbsp; }),}).then(control => control.placeAt("content"))));<script id="sap-ui-bootstrap"&nbsp; src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"&nbsp; data-sap-ui-libs="sap.ui.core,sap.m"&nbsp; data-sap-ui-theme="sap_fiori_3"&nbsp; data-sap-ui-async="true"&nbsp; data-sap-ui-compatversion="edge"&nbsp; data-sap-ui-xx-waitfortheme="init"></script><body id="content" class="sapUiBody sapUiSizeCompact"></body>单击“显示代码片段”并Run code snippet查看实际演示。

慕标5832272

formater 函数需要一个日期对象。var Fdate = "2020-08-01T00:00:00";var date = new Date(Fdate);var dateFormat = sap.ui.core.format.DateFormat.getDateInstance({&nbsp; &nbsp; pattern: "dd/MM/yyyy"});fdateFormatted = dateFormat.format(date);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript