java LocalDateTime is not converted to String but to Json object

Posted in :

這個使用情境滿特別的, 我先把日期的資料放入 json object 之中, 但用 getString() 取出來時會遇到問題, 錯誤訊息是:

JSONObject["my_key_name"] is not a string (class java.time.LocalDateTime

如果使用 getLong顯示的錯誤訊息:

java.lang.NumberFormatException: For input string: "2023-05-10T14:28:57"

真怪, 明明是 String 但在java 裡又不能取出來.

解法, 先使用 get 取出 Object , 再強制轉型即可:

LocalDateTime dateTime = (LocalDateTime) p.right.getJSONObject(i).get("updatetime");
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
String dateTime_string = dateTime.format(dateTimeFormatter);

如果你是使用 jsp 來寫, 會需要額外 import 這2個 class:

import="java.time.LocalDateTime"
import="java.time.format.DateTimeFormatter"    

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *