項目中碰到一個問題,Mysql數據庫中讀取的date數據,再前端經過Bootstrap展現,老是以下格式html
後端實體類,也對時間格式進行了處理,以下:前端
package com.hs.dao.entity.lop.function; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; public class FunctionZrxReview { private static final long serialVersionUID = 1L; @DateTimeFormat(pattern = "yyyy-MM-dd") //入參 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") //出參 private Date time; // 時間 @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") //出參 public Date getTime() { return this.time; } public void setTime(Date time) { this.time = time; } //other code is ignored..... }
一開始一位是時間格式沒有進行合適的處理,嘗試了各類方式,都不行,最後發現問題出在java.util.Date類型上,將java.util.Date;改爲 java.sql.Date,問題迎刃而解;java
java.util.Date 就是在除了SQL語句的狀況下面使用
java.sql.Date 是針對SQL語句使用的,它只包含日期而沒有時間部分
它都有getTime方法返回毫秒數,天然就能夠直接構建
java.util.Date d = new java.util.Date(sqlDate.getTime());
...sql
--------------------------------------------------------------------------------
java.util.Date 是 java.sql.Date 的父類(注意拼寫)
前者是經常使用的表示時間的類,咱們一般格式化或者獲得當前時間都是用他
後者以後在讀寫數據庫的時候用他,由於PreparedStament的setDate()的第2參數和ResultSet的getDate()方法的第2個參數都是java.sql.Date
轉換是
java.sql.Date date=new Java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());
反過來是同樣的數據庫
--------------------------------------------------------------------------------
繼承關係:java.lang.Object --》 java.util.Date --》 java.sql.Date
具體的轉換關係就是java.util.Date d=new java.util.Date (new Java.sql.Date());後端
--------------------------------------------------------------------------------
sql.date,通常是在數據庫的時間字段,util.date通常是平常日期字段this
--------------------------------------------------------------------------------
java.sql.Date主要是用於sql中的!
而java.util.Date用語通常的環境下都行!spa