JSF標籤 h:outputText & f:convertDateTime 解決date正常顯示的問題
阿新 • • 發佈:2019-01-31
一、問題:
用一個<h:outputText/>直接顯示日期,顯示在頁面上的日期會比從資料庫裡取出的日期提前一天。
二、解決方法:
在<h:outputText/>標籤中加入<f:convertDateTime>標籤,就可以解決這個問題,程式碼如下:
<h:outputText value="#{data.t_Date}">
<f:convertDateTime pattern="yyyy年MM月dd日" timeZone="GMT+8"/>
</h:outputText>
三、問題原因:
能夠解決上面問題的關鍵是timeZone="GMT+8",也就是說問題處在時區上,timeZone屬性規定了時區,所以時間可以正常顯示。
四、附錄-GMT的介紹
GMT 就是格林威治標準時間的英文縮寫(Greenwich Mean Time 格林尼治標準時間).
格林威治是倫敦泰晤士河南岸的一個地方,由於從19世紀開始,因為世界各國來往頻繁,而歐洲大陸、美洲大陸和亞洲大陸都有各自的時區,所以為免混亂,各國的代表就在1884 年在美國華盛頓召開了國際大會,通過協議選出倫敦的格林威治,作為全球時間的中心點,格林威治標準時間因而誕生。所以有GMT功能的腕錶就是說腕錶擁有其中的小時錶盤可以顯示GMT時間。
GMT+8 就是說與GMT時差8個小時,剛好就是我們中國的時間. 北京時間是 GMT+8.