You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将LocalDateTime以ISO-8601格式序列化为JSON字符串?

如何将LocalDateTime以ISO-8601格式序列化为JSON字符串?

嘿,我之前也碰到过一模一样的问题!你现在的代码已经正确注册了JavaTimeModule,但Jackson默认对Java 8的LocalDateTime类型是序列化成数组形式的,要改成你想要的ISO-8601字符串格式,只需要加个简单的配置就行,下面给你两种可行的方案:

方案一:全局禁用时间戳序列化特性

这是最快捷的方式,只需要给ObjectMapper添加一行配置,让它不要把日期类型序列化为时间戳或数组,改用标准ISO格式:

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import java.time.LocalDateTime

// 先修正你的data class语法错误
data class Task(val name: String, val dueDate: LocalDateTime)

fun main() {
    val objectMapper = ObjectMapper()
        .registerModule(JavaTimeModule())
        // 关键配置:禁用将日期序列化为时间戳/数组的特性
        .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)

    // 修正Task实例的创建语法
    val task = Task("task", LocalDateTime.now())
    val json = objectMapper.writeValueAsString(task)
    println(json)
}

运行这段代码后,你就能得到期望的输出:

{"name":"task","dueDate":"2023-03-11T16:1:54.728"}

方案二:自定义时间格式化器(按需调整格式)

如果你需要对时间格式做更精细的控制(比如调整毫秒位数、修改分隔符等),可以给LocalDateTime指定自定义的序列化器:

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

data class Task(val name: String, val dueDate: LocalDateTime)

fun main() {
    // 自定义ISO风格的格式化器,你可以根据需求修改pattern
    val dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS")
    val javaTimeModule = JavaTimeModule()
        // 给LocalDateTime注册自定义序列化器
        .addSerializer(LocalDateTime::class.java, LocalDateTimeSerializer(dateFormatter))

    val objectMapper = ObjectMapper()
        .registerModule(javaTimeModule)

    val task = Task("task", LocalDateTime.now())
    val json = objectMapper.writeValueAsString(task)
    println(json)
}

这个方案的灵活性更高,能适配各种自定义的时间格式需求。

备注:内容来源于stack exchange,提问作者Igor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:19:12