天天看点

SAP UI5日期字段关于时区GMT的处理

关于处理时区那部分,昨天不知道后台也是按GMT的时区来存时间的,我重新整理补充一下:

现在的代码需要计算时区的原因是Fiori UI上也要显示GMT时区的时间,因为从后台是按GMT时间返回给OData Call,然后被浏览器转换成了本地时区,所以现有的code要重新转换回GMT。

从后台OData传到前台是按GMT时区的字符串传递:

SAP UI5日期字段关于时区GMT的处理

返回的OData和后台的的时间都是GMT的时间。

UI5控件做format的时候传给format方法的时间已经按照浏览器的时区转换为当地时区了:

SAP UI5日期字段关于时区GMT的处理

所以format的代码里面要处理local time和GMT time的时间差,好让Fiori UI上也显示GMT时区的时间:

oValue.setMinutes(oValue.getTimezoneOffset());

Jerry昨天发现的BUG我这边也能重现了,我建了三条前台都显示的是昨天23号:

SAP UI5日期字段关于时区GMT的处理
SAP UI5日期字段关于时区GMT的处理
SAP UI5日期字段关于时区GMT的处理

很奇怪,可能是UI5的控件本身有问题,没时间深究,我暂时把这个问题记下来。

继续阅读