在做 SAP Fiori 应用时,sap.m.DatePicker看起来是个再普通不过的控件:点开日历,选中某一天,输入框里立刻出现一个格式化好的日期字符串。可一旦你把应用放到真实企业环境里(多语言、多国家、多后端系统、多种用户个性化设置),日期格式就会变成“最容易被低估、也最容易出事故”的细节之一。
很多开发者遇到过类似场景:同一个应用,在开发机上显示15.10.2015,到了同事电脑变成10/15/2015;更离谱的是,前端明明拿到一个Thu Oct 15 2015这样的 JavaScriptDate对象,最终渲染出来却是另一套分隔符和顺序。要把这件事解释清楚,不能只停留在“跟语言环境有关”,而是要把链路拆开看:DatePicker 到底依赖谁来决定 pattern,pattern 又是怎么被翻译成格式化结果的。(OpenUI5 SDK)
下面用一种“可调试、可定位、可落地”的方式,把这条链路从前端控件一直讲到 UI5 的全局格式设置,再延伸到 ABAP 用户日期格式的影响范围,并给出一套在项目里更稳的实践方案。
一个很真实的业务画面:同一个日期,为什么每个人看到的不一样
设想你在做一个全球采购