[英]How to convert datetime string to date in 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 不是 function
我嘗試將源模式設置為“yyyy-MM-ddTHH:mm:ss”。 但這會返回相同的錯誤。
// 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"
.parse
api等待字符串值並將其轉換為 JS 日期(例如用於將其存儲在模型中)。.format
api等待 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日期存儲在model中,而無需編寫一行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=""{/MyDateTimeString}"" /> </VBox> </mvc:View>`, models: new MyModel({ // eg 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>
單擊“顯示代碼片段”並運行代碼片段以查看演示。
格式化程序 function 預計日期為 object。
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.