JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,通常用于前后端數據傳輸。Java中有許多庫可以將Java對象轉換為JSON格式,比如Jackson、Fastjson等。當Java對象與JSON格式交互時,時間格式的轉換十分重要。
Java中的時間格式有很多種,如Date、LocalDate、LocalDateTime等。在進行JSON轉換時,需要將Java時間格式轉換為JSON時間格式,或將JSON時間格式轉換為Java時間格式。
下面是一個將Java時間格式轉換為JSON時間格式的例子:
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class TimeFormatTest { public static void main(String[] args) throws Exception { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); String json = objectMapper.writeValueAsString(LocalDateTime.now()); System.out.println(json); } }
上面的代碼使用Jackson庫將當前時間轉換為JSON格式,并關閉了時間戳輸出,輸出結果如下:
"2021-09-16T16:57:25.573"
可以看到,JSON時間格式與Java時間格式略有不同,JSON格式中使用“T”代替空格來表示日期和時間的分隔符。
同樣地,我們也可以將JSON時間格式轉換為Java時間格式:
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class TimeFormatTest { public static void main(String[] args) throws Exception { ObjectMapper objectMapper = new ObjectMapper(); String json = "\"2021-09-16T16:57:25.573\""; LocalDateTime localDateTime = objectMapper.readValue(json, LocalDateTime.class); System.out.println(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"))); } }
上面的代碼將一個JSON時間格式的字符串轉換為Java時間格式,并使用DateTimeFormatter將其格式化輸出,輸出結果如下:
2021-09-16 16:57:25.573
可以看到,通過JSON和Java時間格式之間的轉換,我們可以方便地將日期和時間以統一的格式傳輸和處理。