我开发了一个SAPUI5应用,使用数据类型sap.ui.model.type.Date,指定显示格式pattern为:yyyy-MM-ddTHH:mm:ss:dateTitle}"text="{path:'invoice>ShippedDate',type:'sap.ui.model.type.Date',formatOptions:{样式:'long',source:{pattern:'yyyy-MM-ddTHH:mm:ss'}}}"/>该字段绑定的数据源的值:2015-04-01T01:20:59I期望的格式在SAPUI5上显示的是年-月-日-T-时-分-秒,但最终显示效果如下:April1,2015本文介绍如何分析这种显示格式的问题。我们在Chrome开发者工具中找到了sap.ui.model.type.Date的实现文件地址:sap/ui/model/type/Date.js首先在函数Date1.prototype.formatValue下个断点,观察字符串类型,的原始值已经成功传入函数:sInternalType的值:stringstring类型的PrimitiveType的值就是它自己。逻辑定义在以下函数中:SimpleType.prototype.getPrimitiveType=function(sInternalType){//避免处理类型对象,除非真的有必要switch(sInternalType){case"any":case"boolean":case"int":案例“浮动”:案例“字符串”:案例“对象”:返回sInternalType;默认值:varoInternalType=DataType.getType(sInternalType);返回oInternalType&&oInternalType.getPrimitiveType().getName();}};从modelTemplate格式化数据:比如一周7天的缩写词,存入aDaysAbbrev:一年12个月的词,存入aMonthsWide:进入parse函数,Calendar类型为:Gregorian,表示公历。日历类型是一个枚举值,所有支持的日历类型如下图所示:格式化数组的值:aFormatArrayhassuccessfulparsedApril20152Processing:Startparsing:T01:20:30Allpossibledateseparators:\u002d\u007E\u2010\u2011\u2012\u2013\u2014\ufe58\ufe63\uff0d\uFF5E在Dateformat.js函数的_parse函数的返回值中观察到时分秒已经解析成功.所以问题不在于解析,而在于值的显示。最后返回值:ThuApr02201501:20:30GMT+0800(ChinaStandardTime更多Jerry原创文章,全部在:《王子熙》: