前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAP UI5日期字段的显示逻辑和用法

SAP UI5日期字段的显示逻辑和用法

作者头像
Jerry Wang
发布2019-05-31 10:34:16
1.1K0
发布2019-05-31 10:34:16
举报

Sent: Tuesday, December 23, 2014 2:27 PM

这里是Opportunity Notes UI上Date Format的逻辑:

代码语言:javascript
复制
<FeedListItem sender="{path : 'json>Creator'}"  senderActive="false"
timestamp="{path:'json>CreatedAt' , formatter: 'cus.crm.opportunity.util.Formatter.notesDateFormatter'}"
text="{path : 'json>Content'}"
/>

每一条Notes Item上面都可以绑定一个Date Formatter,对应的是Formatter.js文件下的notesDateFormatter方法:

代码语言:javascript
复制
           notesDateFormatter: function (oValue) {
if(oValue === "" || oValue === null || oValue === undefined)
      return "";
if(!(oValue instanceof Date)){
// 转换成javascript标准的Date对象
                         oValue = new Date(oValue);
                     }
 
// 下面这行将当前日期和GMT标准时间的时间差算出来,然后换算成GMT标准时间,然后再用GMT的时间做Format.
                     // 这个做法感觉有点别扭,只是为了把日期format成GMT的string,但是已经把oValue这个日期对象的值改变了,如果接下来还要用oValue做别的事情或者显示的日期时间需
// 要根据configuration里面的locale来显示就会有问题。
                     oValue.setMinutes(oValue.getTimezoneOffset());
var locale = new sap.ui.core.Locale(sap.ca.scfld.md.app.Application.getImpl().getResourceBundle().sLocale);
// 用DateFormatter来Format日期  
var formatter = sap.ca.ui.model.format.DateFormat.getDateInstance({style : "medium"},locale);
return formatter.format(oValue);
                },

处理GMT时间差之前的时间:

clipboard1
clipboard1

处理GMT时间差之后的时间:

clipboard2
clipboard2

可以看到时区没变,但是从小时上减去了8个小时,相当于日期对象的值已经变了。 关于Note的时间要支持到时分秒,有两种办法: UI5除了Date Format, 还提供了DateTime Format:

clipboard3
clipboard3

给Date Format传入时分秒的pattern:

clipboard4
clipboard4

这里就可以看出来,如果要支持显示时区的话,直接用原来的代码就有问题,时间应该是+8区的14点,而不是+8区的6点。 具体的日期Format的逻辑可以看sap.ui.core.format.DateFormat.js里面的code。

有时间的时候看一下前台怎么显示note creation date的吧:

QHD/504, Opp id 5576

后台返回5个note,已经按照timestamp排好序了。

clipboard5
clipboard5

5条都是今天创建的, 为什么我最早创建的反而是2014-12-22, 而最新的4条显示的是2014-12-21创建的?

clipboard6
clipboard6
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档