首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SpringMVC + Hibernate + ExtJS 日期字段顯示亂碼:後端時間戳前端渲染解決方案

     編輯:程式設計綜合問答

問題現象

後端查詢返回 failuretime 為 13 位毫秒時間戳(Long),ExtJS Grid 列配置 renderer: Ext.util.Format.dateRenderer('Y-m-d H:i:s') 顯示為數字而非日期。

原因

ExtJS dateRenderer 期望輸入為 JavaScript Date 對象或可被 Date.parse 解析的字符串。直接傳入數字時間戳不會自動轉換。

解決方案:前端 Renderer 手動轉換


{
    header: '故障時間',
    dataIndex: 'failuretime',
    width: 180,
    renderer: function(value) {
        if (!value) return '';
        return new Date(parseInt(value)).toLocaleString(); // 自動轉本地時間字符串
    }
}

替代方案:後端序列化為 ISO 字符串

在 Service/DTO 層將 Date 格式化為 yyyy-MM-dd HH:mm:ss 或 ISO-8601 字符串返回,前端直接綁定無需 renderer。

最佳實踐建議

  • 統一規範:REST API 返回 ISO-8601 字符串(2024-05-20T10:30:00Z),前端統一用 Ext.Date.parse 解析。
  • 時區處理:後端存儲 UTC,前端按用戶時區展示,避免跨時區錯亂。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved