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 necessary
switch (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.ui.base.ManagedObject 的构造函数时,如何传递绑定路径进去
- SAP UI5 sap.ui.Device.media.RANGESETS 的使用介绍
- SAP UI5 sap.ui.Device.media 公有方法介绍
- 关于 Fiori 应用里 SAP UI5 前端开发和 SEGW 后台 OData 服务开发的工作量比值问题
- SAP ABAP CDS view 里 INNER JOIN 和 Association 的区别
- SAP UI5 里一个功能的 compatibility version 是什么含义?
- 「SAP ABAP」OPEN SQL的DML语句你了解多少 (附超详细案例讲解)
- 澄清一些对 SAP UI5 响应式表格 sap.m.Table 的常见理解误区试读版
- 安装SAP,Linux获台前瞻未来(linux安装sap)
- SAP SPAD创建纸张详解编程语言
- SAP 使用较频繁的日期时间处理函数总结详解编程语言
- SAP中屏幕增强对应的程序及屏幕编号详解编程语言
- SAP BDC说明详解编程语言
- SAP在Linux上安装(sap安装linux)
- 系统SAP在Linux系统上的开启之旅(sap启动linux)
- 比较:Oracle与SAP的对比(oracle和sap)
- 对比SAP VS Oracle: 哪个更适合你?(sap与oracle)
- Oracle与SAP在仓储领域的联姻(仓库oracle和sap)
- 跨界合作新模式 Oracle与SAP实现合并(oracle与sap合并)
- Oracle与SAP金蝶谁更具竞争力(oracle sap金蝶)
- 聘请高级Oracle与SAP顾问,拓展业务潜力(oracle sap顾问)
- Oracle和SAP教程一步一步学习(oracle sap教程)