在開發過程中,我們經常需要將對象轉換為json格式返回給前端。尤其是在使用Spring MVC框架時,Controller層返回的數據常常是DTO對象,視圖層需要直接將數據展示在頁面上。但是,在將DTO對象轉換為json格式時,有一個需要注意的問題,那就是時間戳的處理。
首先,我們需要明確的是,Java中的時間戳包含了毫秒數,而JavaScript中的時間戳只包含了秒數。因此,在將Java中的時間戳轉換為JavaScript中的時間戳時,需要將Java中的時間戳除以1000。
public static final SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static void main(String[] args) { Date now = new Date(); String nowStr = SDF.format(now); System.out.println("當前日期時間:" + nowStr); long timeStamp = now.getTime(); System.out.println("時間戳:" + timeStamp); long timeStampSecond = timeStamp / 1000; System.out.println("時間戳(秒):" + timeStampSecond); String jsonStr = "{\"timeStamp\": " + timeStampSecond + "}"; System.out.println("轉換后的json格式:" + jsonStr); }
以上代碼演示了如何將Java時間戳轉換為JavaScript時間戳,并將其封裝為json格式的數據。
在DTO對象中包含時間戳時,我們需要在DTO中添加一個long型的屬性,用來存儲Java時間戳。然后,在將DTO對象轉換為json格式時,將Java時間戳轉換為JavaScript時間戳。
public class UserDTO { private String name; private long birthday; // getter和setter方法省略 public JSONObject toJson() { JSONObject json = new JSONObject(); json.put("name", name); json.put("birthday", birthday / 1000); return json; } }
在以上代碼中,toJson方法中將Java時間戳除以1000,來轉換為JavaScript時間戳,并將其封裝為json格式的數據。
通過以上方式,在將DTO對象轉換為json格式時,我們能夠正確地處理時間戳,保證了前端展示數據的正確性。