关于处理时区那部分,昨天不知道后台也是按GMT的时区来存时间的,我重新整理补充一下:
现在的代码需要计算时区的原因是Fiori UI上也要显示GMT时区的时间,因为从后台是按GMT时间返回给OData Call,然后被浏览器转换成了本地时区,所以现有的code要重新转换回GMT。
从后台OData传到前台是按GMT时区的字符串传递:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CZhNWM3EDZyYmN3EDN1YWO3Y2N0IWZ1UDZ0gTNzUjYk9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
返回的OData和后台的的时间都是GMT的时间。
UI5控件做format的时候传给format方法的时间已经按照浏览器的时区转换为当地时区了:
所以format的代码里面要处理local time和GMT time的时间差,好让Fiori UI上也显示GMT时区的时间:
oValue.setMinutes(oValue.getTimezoneOffset());
Jerry昨天发现的BUG我这边也能重现了,我建了三条前台都显示的是昨天23号:
很奇怪,可能是UI5的控件本身有问题,没时间深究,我暂时把这个问题记下来。