若是咱們用Java的new Date()
方式建立時間,保存到MongoDB後,會發現MongoDB中的時間老是比當前時間少8個小時,這是由於MongoDB存儲時區用的是UTC+0:00
,中國的時區爲UTC+8:00
。
解決辦法爲:在程序代碼中添加時間轉換,若是是Spring MVC返回JSON的應用,能夠直接在實體類中Date
類型的屬性上添加以下註解:數據庫
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
注:@JsonFormat
註解加到get方法上。code
若是使用的不是Spring MVC + JSON,也能夠本身實現一個時區的轉換器,用來統一轉換Date類型的屬性,暫時還沒找到如何在MongoDB數據庫端設置時區的辦法,後面慢慢研究。orm