日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP UI5 日期类型 sap.ui.model.type.Date 的解析格式问题分析

發布時間:2023/12/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP UI5 日期类型 sap.ui.model.type.Date 的解析格式问题分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我開發了一個 SAP UI5 應用,使用了數據類型 sap.ui.model.type.Date,并且指定了顯示格式 pattern 為:yyyy-MM-ddTHH:mm:ss:

<ObjectAttribute title="{i18n>dateTitle}" text="{path: 'invoice>ShippedDate',type: 'sap.ui.model.type.Date',formatOptions: {style: 'long',source: {pattern: 'yyyy-MM-ddTHH:mm:ss'}}}"/>

這個字段綁定的數據源的值為:2015-04-01T01:20:59

我期望在 SAP UI5 上顯示的格式為 某年-某月-某日-T-小時-分-秒,但是最后的顯示效果如下圖:April 1,2015

本文介紹如何分析這個顯示格式的問題。

我們在 Chrome 開發者工具里找到 sap.ui.model.type.Date 的實現文件地址:

sap/ui/model/type/Date.js

首先在函數 Date1.prototype.formatValue 設置斷點,觀察到字符串類型的原始值,已經成功傳入該函數了:

sInternalType 的值:string

string 類型的 PrimitiveType 值就為其本身。

該邏輯定義在如下函數里:

SimpleType.prototype.getPrimitiveType = function (sInternalType) {// Avoid dealing with type objects, unless really necessaryswitch (sInternalType) {case "any":case "boolean":case "int":case "float":case "string":case "object":return sInternalType;default:var oInternalType = DataType.getType(sInternalType);return oInternalType && oInternalType.getPrimitiveType().getName();}};

從模型中拿到格式數據的模板:

比如一周七天的縮寫單詞,存儲在 aDaysAbbrev 里:

一年 12 個月的單詞,存儲在 aMonthsWide 里:

進入 parse 函數內部,Calendar type 為:Gregorian,意思是陽歷。

Calendar type 為枚舉值,所有支持的 calendar 類型如下圖所示:

格式化數組的值:aFormatArray

已經成功解析出 2015年4月2日了:

開始解析:T01:20:30

所有可能的日期分隔符:

\u002d\u007E\u2010\u2011\u2012\u2013\u2014\ufe58\ufe63\uff0d\uFF5E

在 Dateformat.js 函數的 _parse 函數的返回值,已經觀察到小時,分和秒已經成功解析了。所以問題沒有出在解析,而是在值的顯示上。

最后返回的值:Thu Apr 02 2015 01:20:30 GMT+0800 (China Standard Time

更多Jerry的原創文章,盡在:“汪子熙”:

總結

以上是生活随笔為你收集整理的SAP UI5 日期类型 sap.ui.model.type.Date 的解析格式问题分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。