日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP UI5日期字段的显示逻辑和用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

這里是Opportunity Notes UI上Date Format的邏輯:

<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方法:

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時間差之前的時間:

處理GMT時間差之后的時間:

可以看到時區沒變,但是從小時上減去了8個小時,相當于日期對象的值已經變了。
關于Note的時間要支持到時分秒,有兩種辦法:
UI5除了Date Format, 還提供了DateTime Format:

給Date Format傳入時分秒的pattern:

這里就可以看出來,如果要支持顯示時區的話,直接用原來的代碼就有問題,時間應該是+8區的14點,而不是+8區的6點。
具體的日期Format的邏輯可以看sap.ui.core.format.DateFormat.js里面的code。

有時間的時候看一下前臺怎么顯示note creation date的吧:

QHD/504, Opp id 5576

后臺返回5個note,已經按照timestamp排好序了。

5條都是今天創建的,
為什么我最早創建的反而是2014-12-22, 而最新的4條顯示的是2014-12-21創建的?

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

總結

以上是生活随笔為你收集整理的SAP UI5日期字段的显示逻辑和用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。